-1

アプリケーションをコンソール アプリケーションに変更しようとしています。1 つのパラメーターが渡された場合はメソッド 1 が実行され、パラメーターが渡されない場合はメソッド 2 が実行されるように動作させたいと考えています。

私が持っているコードから、実行しようとしても何も起こりません。

ここに私のメインコードがあります:

[STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run();

        RunTestCases runTestCases = new RunTestCases();
        DataIntegration dataIntegration = new DataIntegration();



        if (args != null)
        {           
            runTestCases.RunTestCaseForSelectedField(args);
        }
        else
        {
            runTestCases.RunTestCaseForAllFields();
        }

    }

何か案は?

ありがとう

4

6 に答える 6

4

Application.Runメッセージ ループを開始します。このループは、アプリが閉じられる (終了メッセージを受信する) まで残ります。Application.Run()したがって、その終了メッセージまで何も実行されません。

問題は、アプリケーションを参照するこれらの行が本当に必要かどうかです。Window がない場合、おそらくメッセージ ループは不要です。Windows メッセージを操作する場合は、メッセージ ループが必要になる場合があります。ただし、このループは別のスレッドで実行します。

于 2013-06-13T15:42:43.993 に答える
0

アプリケーション関連のコードは、コンソール アプリケーションでは必要ありません。Windows アプリケーション (wpf) でのみ使用されます。また、他の人が「args」について語ったことも有効です。

于 2013-06-13T16:02:34.507 に答える
0

args != null行にブレークポイントを配置して、内部の内容を正確に確認するように、デバッグすると実際の問題がわかりますargs

ただし、それはおそらくargs決してnullではないため、次のようにします。

if (args.Any())

(編集: JeffRSonはまた、あなたのコードで別の問題を見つけたので、彼の答えも正しいですがargs、元の問題を修正すると、私が説明した問題にぶつかることになります。したがって、ここでも私の答えを保持します。

パラメーターなしでコンソール アプリを起動すると、null 値ではなくargs空の配列になります)

于 2013-06-13T15:41:40.637 に答える
0

main メソッドの最初の 3 行を削除します。 メソッドにエントリ ポイントを設定する場合Output typeは、プロジェクト プロパティをチェックインします。Console Application

于 2013-06-13T15:46:41.367 に答える