コマンド ライン引数 (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 つ受け取り、整数に変換し、その値の階乗を計算しています。引数がない場合は、プログラムの正しい使用方法を説明するメッセージを表示します。

[!メモ]

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

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

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.

参照

処理手順

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

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

関連項目

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

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

System.Environment

概念

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

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