2
我假设#地区被忽略,编译器下降,那么,为什么它是一个预处理指令,而不是某种评论结构(如//地区名称:东西(); // ENDREGION NAME什么的。)是否有一个作出指令的决定的具体原因是什么?为什么#地区是指令而不是评论?
我假设#地区被忽略,编译器下降,那么,为什么它是一个预处理指令,而不是某种评论结构(如//地区名称:东西(); // ENDREGION NAME什么的。)是否有一个作出指令的决定的具体原因是什么?为什么#地区是指令而不是评论?
我知道这不是一个直接的答案,但仅此而已是如何布局的C# Language Spec(§2.5)。
预处理指令提供按条件 跳过源文件的部分,来报告错误和警告条件, 以及描绘源代码的不同区域的能力。
我不认为它是由编译器忽略,它只是不产生任何影响。从词汇处理的角度来看,它仍然被认为是一个条件汇编,因此也符合一些其他的预处理指令。从规格:
一个区域的词法处理:
#地区
...
#endregion
正好对应于一个条件编译的词法处理形式的指令:
#如果真
...
#ENDIF