猿问

C# 在 Visual Studio IDE 中尝试捕获失败很慢

有谁知道如何停止以下问题:


有时您必须使用 Try-Catch 块来查看值是否可以转换为预期类型。例如,如果您不知道原始值是一个字符串,则不能只使用 TryParse。


不幸的是,我刚刚发现了一个让生活变得困难的 Visual Studio IDE 怪癖。


要查看这一点,请创建一个 Winforms 项目并将以下代码添加到表单加载中:


        private void Form1_Load(object sender, EventArgs e)

    {

        Stopwatch stopWatch = new Stopwatch(); stopWatch.Start();

        int numTries = 1000;


        object obj = "";

        for (int i = 0; i < numTries; i++)

        {

            try

            {

                int val = (int)obj;

            }

            catch (System.InvalidCastException)

            {

            }

        }


        TimeSpan ts = stopWatch.Elapsed;

        string elapsedTime = $"{numTries} failed try-catch took a time of {ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}";


        MessageBox.Show(elapsedTime);

    }

当我在 IDE 中运行它时,代码需要 17 秒来处理 1000 个失败的 try-catch 块。相比之下,如果我在 IDE 之外运行调试版本,花费的时间太短,甚至无法注册。这是我正在使用的编辑器的代码调试问题。


我使用的是 Visual Studio 2017 Enterprise,版本 15.4.0,.NET Framework 4.7.02046


慕码人8056858
浏览 116回答 1
1回答
随时随地看视频慕课网APP
我要回答