実行時引数の参照
- 実行時引数とは
- Mainメソッドの引数からの取得方法を解説
- Environment.GetCommandLineArgs()からの取得方法を解説

・スクールは200,000円など高額、Freeksはサブスク型で10,780円から受講可能
・合うか不安でも、Freeksなら入会金0円、いつでも退会可能だから気軽に始められる
・途中で学ぶ言語を変更してもOK、追加料金なし
・24時間いつでも質問が可能、現役エンジニアが回答
・学習のみならず、転職支援もサポートあり、転職成功率は94.8%
実行時引数とは
C#で実行時引数を扱う方法について解説します。
実行時引数とは、アプリケーションは実行する際に渡す値のことです。
同じアプリケーションでも渡す内容で動作を変える場合に使用します。
例えばメモ帳を起動する際には、テキストファイルを渡すことができます。
試しに実行してみましょう。
Windowsメニューを開いてから「cmd」と入力してください。
検索結果として「コマンド プロンプト」出てくるので、選択してください。
次にコマンド プロンプト上でnotepad、続けてテキストファイルをコマンド プロンプトにドラッグ&ドロップしてください。
例)C:\Users\USER>notepad "C:\work\メモ.txt"
実行すると、テキストファイルを開いた状態でメモ帳が立ち上がります。
ただ、メモ帳を立ち上げるのとは、動作が変わりました。
実行時引数をプログラムで使用するには二つの方法があります。
・Mainメソッドの引数から取得
・System.Environment.GetCommandLineArgs()から取得
では、一つずつ解説していきます。
Mainメソッドの引数からの取得方法
1つ目は、Mainメソッドに引数をつける方法です。
Mainメソッドは引数をつけても、つけなくてもコンパイルはできます。
Mainメソッドの引数は、string[]のみつけることができるようになっています。
この引数string[]を参照することで実行時引数が取得できます。
public static void Main(string[] args)
サンプルプログラムをご紹介します。
次のファイルを同じフォルダに作成してください。
public class Program
{
public static void Main(string[] args)
{
foreach (string s in args) {
System.Console.WriteLine(s);
}
// キー入力待ち
System.Console.ReadKey();
}
}
C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥csc.exe *.cs
pause
@Program.exe 引数1 引数(2) 引数③
引数1
引数(2)
引数③
ファイルを作成できたらCompile.batを実行してみましょう。
同じフォルダにProgram.exeが作成されます。
Program.exeを引数付きで実行するProgram.batを実行してみてください。
「Program.exe 実行結果」のように表示されたら成功です。
Environment.GetCommandLineArgs()からの取得方法
もう一つ、System.Environment.GetCommandLineArgs()から取得する方法をご紹介します。
この方法を使うと、Mainメソッド以外で実行時引数を参照したいときに便利です。
Mainスレッドで実行時引数をグローバル変数に格納したり、メソッド呼出しの引数で渡す必要がありません。
使う方法はEnvironment.GetCommandLineArgs()を呼んで、string[]の型で戻り値として受け取るだけです。
string[] args = System.Environment.GetCommandLineArgs();
サンプルプログラムをご紹介します。
次のファイルを同じフォルダに作成してください。
Program.cs以外は「Mainメソッドの引数からの取得方法」の際と同じ内容になっています。
public class Program
{
public static void Main()
{
string[] args = System.Environment.GetCommandLineArgs();
foreach (string s in args) {
System.Console.WriteLine(s);
}
// キー入力待ち
System.Console.ReadKey();
}
}
C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥csc.exe *.cs
pause
@Program.exe 引数1 引数(2) 引数③
Program.exe
引数1
引数(2)
引数③
ファイルを作成できたらCompile.batを実行してみましょう。
同じフォルダにProgram.exeが作成されます。
Program.exeを引数付きで実行するProgram.batを実行してみてください。
「Program.exe 実行結果」のように表示されたら成功です。
Environment.GetCommandLineArgs()を使った場合は、string[]の最初の要素はexeファイル名になります。
この点、Mainメソッドの引数とは違っているのでご注意ください。