ホームページ  >  記事  >  バックエンド開発  >  C# コマンドライン引数

C# コマンドライン引数

王林
王林オリジナル
2024-09-03 15:07:091105ブラウズ

C# では、プログラムの実行は main() メソッドから始まります。 main () メソッドは他のメソッドからの引数を受け入れませんが、コマンド ラインを介してユーザーから渡される引数を受け入れます。これらの引数はコマンド ライン引数と呼ばれます。以下は、C# のコマンド ライン引数に関する重要なポイントです:

  • main () メソッドは、ユーザーが文字列型の配列で渡した引数を受け取ります。
  • プログラムの実行中に引数を受け取ります。
  • ユーザーは、Convert クラスまたは Parse() メソッドを使用して、文字列型の引数を C# の他の型に変換できます。

説明付き構文

コマンドライン引数を取る Main() メソッドの構文は次のとおりです。

static void Main(string[] args)
{
//user code
}

上記の構文では、「static」は Main() メソッドがインスタンスなしで実行できることを示すキーワードです。 「void」は戻り値の型です。 「Main」は、これがプログラムの Main() メソッドであることを示し、「string[]」はメソッドに渡される引数のタイプです。 「args」は引数に与えられたユーザー定義の名前です。

C# ではコマンドライン引数はどのように機能しますか?

コマンドライン引数は文字列型の配列として 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() メソッドのコマンドライン引数を入力する良い方法があります。以下はそのためのいくつかの手順です:

  1. ソリューション エクスプローラーの main () メソッドを含むプロジェクトを右クリックします。
  2. 「プロパティ」をクリックします
  3. [プロパティ] ウィンドウで、[デバッグ] タブに移動します
  4. デバッグでは、「コマンド ライン引数」というテキスト ボックスが表示されます。

このテキスト ボックスにコマンドライン引数をスペースで区切って入力できます。同じスクリーンショットを以下に示します:

C# コマンドライン引数

C# コマンドライン引数の例

さまざまな例を以下に示します:

例 #1

たとえば、コマンドライン引数を介してユーザーからの入力として 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);
}
}
}
}

出力:

C# コマンドライン引数

入力が入力され、出力が受信された状態で上記のプログラムを実行するコマンドを含むスクリーンショットは次のとおりです。

例 #2

たとえば、コマンドラインを通じてユーザーから数値を取得し、その階乗を計算します。

コード:

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);
}
}
}
}

出力:

C# コマンドライン引数

上記のプログラムを実行するコマンドを入力し、数値を入力して出力したスクリーンショットは次のとおりです。

注: 上記 2 つのプログラムは、「Developer Command Prompt for VS 2019」を使用して実行しました。 Visual Studio の [デバッグ] オプションの [コマンド ライン引数] テキスト ボックスにコマンド ライン引数を指定することで、Visual Studio からこれらのプログラムを実行することもできます。

結論

コマンド ライン引数は、コマンド ラインを使用してユーザーからプログラムの Main() メソッドに渡されるパラメーターです。ユーザーはプログラムの実行中にこれらの引数を入力します。これらの引数は、文字列型の配列で Main() メソッドによって受け取られます。

以上がC# コマンドライン引数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# コマンド次の記事:C# コマンド