反编译后,#if #endif语句中的负片段是否可见?

时间:2017-12-02 07:17:52

标签: c#

是否从代码中清除了#if语句后面的行,或者它们是否“未使用”?在c ++中,我理解预处理器只是清除了它,但在c#中没有预处理器,因此功能可能会有所不同。我看起来有点但在文档中没有找到明确的声明。

#if PRIVATE
string password = "pass";
#else
string password;
#endif

1 个答案:

答案 0 :(得分:3)

预处理器指令之间的部分被排除在谓词评估为false时在最终中间语言中不可见。

一旦编译器运行,就没有证据表明它曾经存在过。你在这里无需担心。