私は C# を手に入れようとしています (C++ にはある程度慣れていますが、Qt は私の頭をはるかに超えています) が、MSV で停止の問題が発生しています。
つまり、コードをビルドして実行すると、結果のプログラムがクラッシュすることがあります。ビルドして IDE の外部で実行すると、意図したとおりに動作します。
いくつかの異なるプログラムでこの問題に何度か遭遇しましたが、常に同じエラー コードが表示されるとは限りませんが、結果は常に同じです。コンソール ウィンドウは表示されますが、何も書き込まれません。1 秒間ハングした後、「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
すると、問題が完全に解消されます。エディターから適切にコンパイルおよび実行され、問題なく実行されます。ただし、2 つの 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 を使用しています。