我正在尝试学习 C#(我对 C++ 有点熟悉,但 Qt 超出了我的想象),但我遇到了一个与 MSV 相关的问题。
也就是说,有时当我构建和运行我的代码时,生成的程序会崩溃,如果我构建它并在 IDE 之外运行它,它会按预期工作。
我在几个不同的程序上遇到过这个问题几次,我并不总是得到相同的错误代码,但结果总是相同的——控制台窗口出现但没有写入任何内容;它挂起一秒钟,然后弹出“vshost32.exe 已停止工作”。在错误消息的调试选项之后什么都不做,因为它说它没有配置。
这是给我问题的完整程序的示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int number1, number2, number3;
Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());
Console.WriteLine("Please enter another number:");
number2 = int.Parse(Console.ReadLine());
Console.WriteLine("Calculating...");
number3 = number1 * number2;
switch (number3)
{
case 0:
Console.WriteLine("The result is equal to zero.");
break;
case 1:
Console.WriteLine("The result is equal to one.");
break;
default:
Console.WriteLine("The result is not equal to zero or one.");
break;
}
Console.ReadLine();
}
}
}
这就是它变得陌生的地方。
注释掉这些case
陈述完全消除了这个问题。它可以从编辑器正确编译和运行,并且运行没有问题。但是,我看不出这两个案例陈述会导致问题的任何原因。作为记录,此程序以代码“-1073741819 (0xc0000005) 访问冲突”退出。
只是为了幽默 IDE 看看它是否真的是我的代码中的问题,我从这个页面运行了第一个示例程序: http : //csharp.net-tutorials.com/basics/switch-statement/同样的事情发生了. 挂起,崩溃,0xc0000005 访问冲突。而且,就像以前一样,当我在 IDE 之外手动运行 .EXE 文件时,它工作得很好。
我重新安装了 .NET Framework 几次,看看这是否是问题所在 - 我什至尝试从 4.5.3 回滚到 4.5,结果更加糟糕。现在我完全被难住了,因为只要我必须离开 IDE 来运行我的代码,我真的什么都做不了。我正在运行 Windows 10 (b10041) 并且正在使用 Visual Studio 2013。