コマンド ライン引数 (C# プログラミング ガイド)

Main メソッドに引数を渡すには、次のいずれかの方法でメソッドを定義します。

static int Main(string[] args)
static void Main(string[] args)

注意

Windows フォーム アプリケーションの Main メソッドでコマンド ライン引数を有効にするには、program.cs の Main のシグネチャを手動で変更する必要があります。Windows フォーム デザイナーが生成するコードは、入力パラメーターなしの Main を作成します。Environment.CommandLine または Environment.GetCommandLineArgs を使用して、コンソールまたは Windows アプリケーション内の任意の場所からコマンド ライン引数にアクセスすることもできます。

Main メソッドのパラメーターは String の配列で、コマンド ライン引数を表しています。 通常は、Length プロパティを調べて引数があるかどうかを確認します。次はその例です。

if (args.Length == 0)
{
    System.Console.WriteLine("Please enter a numeric argument.");
    return 1;
}

また、Convert クラスまたは Parse メソッドを使って、文字列型の引数を数値型に変換できます。 たとえば、次のステートメントでは、Parse メソッドを使用して string を long 値に変換します。

long num = Int64.Parse(args[0]);

C# の long 型を使うこともできます。これは Int64 のエイリアスです。

long num = long.Parse(args[0]);

また、同じ変換に Convert クラスの ToInt64 メソッドを使うこともできます。

long num = Convert.ToInt64(s);

詳細については、「Parse」および「Convert」を参照してください。

使用例

コンソール アプリケーションでコマンド ライン引数を使用する方法の例を次に示します。 アプリケーションは、実行時に引数を 1 つ受け取り、整数に変換し、その値の階乗を計算しています。 引数がない場合は、アプリケーションの正しい使用方法を説明するメッセージを表示します。

コマンド プロンプトからアプリケーションをコンパイルして実行するには、次の手順を実行します。

  1. 次のコードをテキスト エディターに貼り付け、Factorial.cs という名前でテキスト ファイルとして保存します。

    //Add a using directive for System if the directive isn't already present. 
    
    public class Functions
    {
        public static long Factorial(int n)
        {
            // Test for invalid input 
            if ((n < 0) || (n > 20))
            {
                return -1;
            }
    
            // Calculate the factorial iteratively rather than recursively: 
            long tempResult = 1;
            for (int i = 1; i <= n; i++)
            {
                tempResult *= i;
            }
            return tempResult;
        }
    }
    
    class MainClass
    {
        static int Main(string[] args)
        {
            // Test if input arguments were supplied: 
            if (args.Length == 0)
            {
                System.Console.WriteLine("Please enter a numeric argument.");
                System.Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }
    
            // Try to convert the input arguments to numbers. This will throw 
            // an exception if the argument is not a number. 
            // num = int.Parse(args[0]); 
            int num;
            bool test = int.TryParse(args[0], out num);
            if (test == false)
            {
                System.Console.WriteLine("Please enter a numeric argument.");
                System.Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }
    
            // Calculate factorial. 
            long result = Functions.Factorial(num);
    
            // Print result. 
            if (result == -1)
                System.Console.WriteLine("Input must be >= 0 and <= 20.");
            else
                System.Console.WriteLine("The Factorial of {0} is {1}.", num, result);
    
            return 0;
        }
    }
    // If 3 is entered on command line, the 
    // output reads: The factorial of 3 is 6.
    
  2. [スタート] 画面または [スタート] メニューから、Visual Studio の [開発者コマンド プロンプト] ウィンドウを開き、先ほど作成したファイルが含まれているフォルダーに移動します。

  3. 次のコマンドを入力してアプリケーションをコンパイルします。

    csc Factorial.cs

    アプリケーションにコンパイル エラーがなければ、Factorial.exe という名前の実行可能ファイルが作成されます。

  4. 3 の階乗を計算する次のコマンドを入力します。

    Factorial 3

  5. 次の出力が生成されます: The factorial of 3 is 6.

注意

Visual Studio でアプリケーションを実行する場合、「[デバッグ] ページ (プロジェクト デザイナー)」のコマンド ライン引数を指定できます。

コマンド ライン引数の使用方法の例については、「方法: コマンド ラインを使用してアセンブリを作成および使用する (C# および Visual Basic)」を参照してください。

参照

処理手順

方法: コマンド ライン引数を表示する (C# プログラミング ガイド)

方法: foreach を使用してコマンド ライン引数にアクセスする (C# プログラミング ガイド)

関連項目

Main() の戻り値 (C# プログラミング ガイド)

クラス (C# プログラミング ガイド)

Environment

概念

C# プログラミング ガイド

Main() とコマンド ライン引数 (C# プログラミング ガイド)