2

私は 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 を使用しています。

4

1 に答える 1