我假设#region 被编译器忽略并丢弃,那么为什么它是预处理器指令而不是某种注释结构(例如 //REGION NAME: stuff(); //ENDREGION NAME 或其他东西。)是否有特殊原因做出将其作为指令的决定?
问问题
71 次
1 回答
1
我知道这不是一个直接的答案,但这就是它在C# 语言规范(第 2.5 节)中的布局方式。
预处理指令提供有条件地跳过源文件部分、报告错误和警告条件以及描绘源代码的不同区域的能力。
我认为编译器不会忽略它,它只是没有任何效果。从词法处理的角度来看,它仍然被认为是条件编译,因此与其他一些预处理指令一致。从规范:
区域的词汇处理:
#地区
...
#endregion
完全对应于以下形式的条件编译指令的词法处理:
#如果真实
...
#万一
于 2013-07-11T01:27:32.807 回答