C# 反编译后,负#if#endif语句之间的块是否可见?

C# 反编译后,负#if#endif语句之间的块是否可见?,c#,C#,是否从代码中清除了后跟否定#if语句的行,或者它们只是“未使用”?在C++中,我理解预处理器刚刚清除了这个问题,但是在C语言中没有预处理器,所以功能可以稍微改变。我看了一下,但在文档中找不到关于这一点的明确声明 #if PRIVATE string password = "pass"; #else string password; #endif 当谓词的计算结果为false时,前置处理器指令之间的部分被排除,并且在最终的中间语言中不可见 一旦编译器运行,就没有证据证明它曾经存在过。你没什么好担

是否从代码中清除了后跟否定#if语句的行,或者它们只是“未使用”?在C++中,我理解预处理器刚刚清除了这个问题,但是在C语言中没有预处理器,所以功能可以稍微改变。我看了一下,但在文档中找不到关于这一点的明确声明

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

当谓词的计算结果为false时,前置处理器指令之间的部分被排除,并且在最终的中间语言中不可见

一旦编译器运行,就没有证据证明它曾经存在过。你没什么好担心的