相关疑难解决方法(0)

调试器步入if()块,其中condition为false

鉴于这个宝石的代码:

class Program
{
    private static bool IsAdmin = true;

    static void  Main(string[] args)
    {
        if (!IsAdmin)
        {
            throw new Exception();
        }

        try
        {
            var x = 2342342;
            var y = 123132;
        }
        catch (Exception)
        {
            throw;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果this.IsAdminyield为true,我希望调试器不要输入if语句.实际上它确实 - 并且它超过了投掷,但实际上没有投掷!

现在,这只发生在if语句中有一个异常后跟一个try/catch块,在Visual Studio 2013上,针对.NET Framework 4,64位,"首选32位"未选中.

我已经与不同机器上的同事证实了这种奇怪之处.步骤虽然以下代码和调试器似乎步入if分支,但没有抛出异常:

在此输入图像描述

我处于调试模式,我已经多次尝试编译和清理项目.

任何人都可以解释为什么会这样吗?

c#

34
推荐指数
2
解决办法
4022
查看次数

标签 统计

c# ×1