值我有一个小的调试截距说最简单的“真”,编译器无法识别为真
if (true)
throw new Exception()
DoStuff();
但是编译器警告我说,DoStuff()是无法访问的代码。因此,有以下几条:
if (1==1)
if (1 + 1 == 2)
下“工作”
int x = 1;
if (2 * x == 2)
throw...
什么表情显然是真实的人尚未编译器?我可以管理最好的是
bool False =>false;
if (False)
...它具有很好的性质将其关闭,所有我需要做的就是将其更改为
bool False=>true /* :D) */
您所看到的常量表达式的分析,是不是常量表达式的分析之间的差异我的方法。如果这是C#,分析会假设'x'在进行流分析时可能包含任何有效的int值。 ('bool False => true'可能会让你被捕) –
这听起来像是你应该让编译器警告你的情况。谁在乎?无论如何,你正在做一些奇怪的事情。 –
您应该检查[Debug](https://msdn.microsoft.com/en-us/library/system.diagnostics.debug(v = vs.110).aspx)类和跟踪开关。 .NET允许你从1.0版本开始基于构建类型和条件。谦虚的'Debug.Assert(false)'在Debug上断开,但在发布版本上被删除 –