有谁知道如何停止以下问题:
有时您必须使用 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
相关分类