什么规则适用于C#中的条件编译符号的名称?
我已咨询过#define documentation,/define compiler switch documentation和C# language specification。 #define和/ define文档只是说您可以定义符号名称,并且该符号名称不会与变量名称冲突。语言规范说有一个"条件符号"令牌,但似乎没有评论什么构成有效的符号令牌 - 我可能不会在正确的地方寻找?
编辑:指向权威文档的链接很有用
答案 0 :(得分:3)
符号定义可以在规范的第2.5.1节中找到:
2.5.1条件编译符号
#if
,#elif
,#else
和#endif
指令提供的条件编译功能是通过预处理表达式(第2.5.2节)和条件控制的编译符号。条件符号:
之外的任何标识符或关键字
除true
或false
这反映在same section和grammar下的§C.1.10中,但请注意,在线提供的规范适用于该语言的旧版本,不应使用作为参考。您可以在C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC#\ Specifications \ 1033或download中找到最新的可用规范(显然,在撰写本文时它仍然是C#5.0)。
identifier-or-keyword 的定义可以在§B.1.6标识符中找到。