コマンド ライン引数 (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# プログラミング ガイド)