我有一个调试拦截说
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) */
答案 0 :(得分:1)
无需弄乱你的代码,你可以这样做:
[System.Diagnostics.Conditional("DEBUG")]
void stop() { throw new Exception(); }
要使Debug
中存在但在Release
中不存在的方法,通常使用:
void MyMethod()
{
stop(); // If you're in Release, this invocation will be removed
DoStuff();
}
我在代码片段中一直这样做,我的方法遵循命名约定DebugConditional_CopyPasteOfContainerName()