C# - コマンドライン引数の取得方法

コマンドライン引数(アプリケーション引数)はMainメソッドの第一引数に渡されます。Mainメソッドが無い場合は、Environment.GetCommandLineArgs()メソッドを使用しても取得できます。

Mainメソッドの第一引数で取得

Mainメソッドの第一引数に 文字列の配列 として渡されます。

次のコードは Mainメソッドの引数 を使用し、コマンドライン引数の内容を表示します。

static void Main(string[] args)
{
    // コマンドライン引数の内容を表示
    for (int i = 0; i <  args.Length; i++)
    {
        Console.WriteLine($"args[{i}] = {args[i]}");
    }
}

Mainメソッドが見つからない場合

プロジェクトの種類や作成時のオプションによってはMainメソッドが自動生成されません。その場合は次章の Environment.GetCommandLineArgs()メソッド を使用して取得します。

コンソールアプリケーションでメインメソッドが生成されない場合、次の記事を参照してください。

Environment.GetCommandLineArgs()メソッド で取得

Environment.GetCommandLineArgs()メソッドを呼び出すと、文字列の配列 でコマンドライン引数の内容を返します。Mainメソッドとは異なり、配列の先頭にはプログラム名が格納されます。コマンドライン引数の内容は 配列の [1] からです。
using System;

string[] コマンドライン引数 = Environment.GetCommandLineArgs();

次のコードは GetCommandLineArgs()メソッドを使用し、コマンドライン引数の内容を表示します。

using System;


// コマンドライン引数を取得
string[] args2 = Environment.GetCommandLineArgs();

// 内容を表示
for (int i = 0; i < args2.Length; i++)
{
    Console.WriteLine($"args2[{i}] = {args2[i]}");
}
Mainメソッド引数とGetCommandLineArgs()メソッドの違い
Mainメソッド引数とGetCommandLineArgs()メソッドの違い

Visual Studio でデバッグ時にコマンドライン引数を渡す

プロジェクトのプロパティから設定します。Visual Studio 2022から設定方法が変更されています。詳細は次の記事を参照してください。

参考資料

検証環境