C#是否在if(false)块内编译代码?

Axi*_*ili 13 .net c#

我只是想知道这些代码块是否编译成.dll

我认为这根本不会被编译

#if SOMETHING_UNDEFINED
// some code - this is ignored by the compiler
#endif
Run Code Online (Sandbox Code Playgroud)

那么这些呢?

1.

if(false) {
  // some code - is this compiled?
}
Run Code Online (Sandbox Code Playgroud)

2.

const bool F = false;
if(F) {
  // some code - is this compiled?
}
Run Code Online (Sandbox Code Playgroud)

3.

bool F = false;
if(F) {
  // some code - is this compiled?
}
Run Code Online (Sandbox Code Playgroud)

编辑:对不起,我在谈论Visual Studio

Jon*_*eet 7

只是测试它,Microsoft C#4编译器没有,它看起来像Mono gmcs编译器版本2.4.0.0也没有.我不知道规范中有什么东西禁止它.

编辑:当我回答这个问题时,只有第一个版本存在.情况2相当于情况1,但情况3不相同.

  • 不,最后一个案例被编译到程序集中. (2认同)