C# では、プログラムの実行は main() メソッドから始まります。 main () メソッドは他のメソッドからの引数を受け入れませんが、コマンド ラインを介してユーザーから渡される引数を受け入れます。これらの引数はコマンド ライン引数と呼ばれます。以下は、C# のコマンド ライン引数に関する重要なポイントです:
説明付き構文
コマンドライン引数を取る Main() メソッドの構文は次のとおりです。
static void Main(string[] args) { //user code }
上記の構文では、「static」は Main() メソッドがインスタンスなしで実行できることを示すキーワードです。 「void」は戻り値の型です。 「Main」は、これがプログラムの Main() メソッドであることを示し、「string[]」はメソッドに渡される引数のタイプです。 「args」は引数に与えられたユーザー定義の名前です。
コマンドライン引数は文字列型の配列として Main() メソッドに渡されるため、プログラムの実行中に n 個のパラメータを渡すことができます。
例:
public static void Main(string[] args) { //user code }
上記の Main() メソッドにパラメータを渡すと、文字列型の配列である「args」変数によって保持されます。次に、インデックス位置を使用して、この配列から個々の引数にアクセスできます。
以前、渡された各要素は文字列型でしたが、以下の例に示すように、後で Convert クラスまたは C# が提供する Parse() メソッドを使用して必要なデータ型に変更できます。
long num = long.Parse(args[0]);
上記のステートメントは、インデックス番号 0 に存在する引数を、Parse() メソッドを使用して同等の 'long' 値に変換し、'long' 型の変数 ' num' に格納します。
int num = Convert.ToInt32(args[1]);
このステートメントは、インデックス番号 1 にある引数を同等の 32 ビット符号付き整数に変換し、それを型「int」の変数「num」に格納します。
コマンド ライン引数の存在を確認することもできます。つまり、以下に示すように、'Length' プロパティを使用して引数が Main() メソッドに渡されているかどうかを確認できます。
if (args.Length > 0) { System.Console.WriteLine("Arguments passed"); } else { System.Console.WriteLine("Arguments are not passed"); }
Windows フォーム アプリケーションの場合、Main() メソッドでコマンドライン引数を有効にするには、ファイル「program.cs」内の Main() メソッドの署名を変更する必要があります。これは、Windows フォーム デザイナーが入力パラメーターなしで Main() メソッドを含むコードを生成するためです。
Visual Studio で C# を使用している場合は、Visual Studio で Main() メソッドのコマンドライン引数を入力する良い方法があります。以下はそのためのいくつかの手順です:
このテキスト ボックスにコマンドライン引数をスペースで区切って入力できます。同じスクリーンショットを以下に示します:
さまざまな例を以下に示します:
たとえば、コマンドライン引数を介してユーザーからの入力として 10 個の整数値を受け取り、これらの数値の奇数と偶数をチェックします。
コード:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { List<int> evenArray = new List<int>(); List<int> oddArray = new List<int>(); try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter numbers to check for odd even!"); return; } //accessing arguments using for loop for (int i = 0; i < args.Length; i++) { //checking for odd and even if ((Convert.ToInt32(args[i]) % 2) == 0) { evenArray.Add(Convert.ToInt32(args[i])); } else { oddArray.Add(Convert.ToInt32(args[i])); } } //displaying all the numbers entered Console.WriteLine("Numbers entered:"); for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } //displaying even numbers entered Console.WriteLine("\nEven numbers: "); for (int i = 0; i < evenArray.Count; i++) { Console.WriteLine(evenArray[i]); } //displaying odd numbers entered Console.WriteLine("\nOdd numbers: "); for (int i = 0; i < oddArray.Count; i++) { Console.WriteLine(oddArray[i]); } Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
出力:
入力が入力され、出力が受信された状態で上記のプログラムを実行するコマンドを含むスクリーンショットは次のとおりです。
たとえば、コマンドラインを通じてユーザーから数値を取得し、その階乗を計算します。
コード:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { int number; int factorial; try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter a number to calculate " + "its factorial!"); return; } if(args.Length > 1) { Console.WriteLine("Please enter only one number."); return; } Console.WriteLine("The number entered is: " + args[0]); number = Convert.ToInt32(args[0]); factorial = number; //calculating factorial of number using 'for' loop for(int i = number - 1; i >= 1; i--) { factorial = factorial * i; } Console.WriteLine("Factorial of {0} is {1}: ", args[0], factorial); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
出力:
上記のプログラムを実行するコマンドを入力し、数値を入力して出力したスクリーンショットは次のとおりです。
注: 上記 2 つのプログラムは、「Developer Command Prompt for VS 2019」を使用して実行しました。 Visual Studio の [デバッグ] オプションの [コマンド ライン引数] テキスト ボックスにコマンド ライン引数を指定することで、Visual Studio からこれらのプログラムを実行することもできます。コマンド ライン引数は、コマンド ラインを使用してユーザーからプログラムの Main() メソッドに渡されるパラメーターです。ユーザーはプログラムの実行中にこれらの引数を入力します。これらの引数は、文字列型の配列で Main() メソッドによって受け取られます。
以上がC# コマンドライン引数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。