コマンド ライン引数 (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 つ受け取り、整数に変換し、その値の階乗を計算しています。 引数がない場合は、アプリケーションの正しい使用方法を説明するメッセージを表示します。
コマンド プロンプトからアプリケーションをコンパイルして実行するには、次の手順を実行します。
次のコードをテキスト エディターに貼り付け、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.
[スタート] 画面または [スタート] メニューから、Visual Studio の [開発者コマンド プロンプト] ウィンドウを開き、先ほど作成したファイルが含まれているフォルダーに移動します。
次のコマンドを入力してアプリケーションをコンパイルします。
csc Factorial.cs
アプリケーションにコンパイル エラーがなければ、Factorial.exe という名前の実行可能ファイルが作成されます。
3 の階乗を計算する次のコマンドを入力します。
Factorial 3
次の出力が生成されます: The factorial of 3 is 6.
注意
Visual Studio でアプリケーションを実行する場合、「[デバッグ] ページ (プロジェクト デザイナー)」のコマンド ライン引数を指定できます。
コマンド ライン引数の使用方法の例については、「方法: コマンド ラインを使用してアセンブリを作成および使用する (C# および Visual Basic)」を参照してください。
参照
処理手順
方法: コマンド ライン引数を表示する (C# プログラミング ガイド)
方法: foreach を使用してコマンド ライン引数にアクセスする (C# プログラミング ガイド)