TIPSコマンドライン引数を取得するには?デジタルアドバンテージ2003/05/30アプリケーションをコマンド・プロンプトから実行する場合には、そのアプリケーションのEXEファイル名に続けて、起動時のパラメータやオプションを指定することができる。エクスプローラ上でEXEファイル上にファイルをドロップすることにより、多くのアプリケーションでは、起動時に開くファイルを指定できる。して指定されたパラメータやオプションあるいはファイルは、アプリケーションに対して「コマンドライン引数」として渡される。コマンドライン引数をセットされたプログラムでは、それを取得して適切に処理しなければならない。C#ではこのコマンドライン引数を、アプリケーションのエントリ・ポイント(プログラムの起動時に呼び出される個所)であるMainメソッドのパラメータとして受け取ることができる。このパラメータの型は文字列の配列である。次のサンプル・プログラムではコマンドライン引数で指定された文字列を順に表示する。csargs1.cs指定されたコマンドライン引数を表示するC#のサンプル・プログラム(csargs1.cs)csargs1.csのダウンロードこのサンプル・プログラムの実行例は次のようになる。サンプル・プログラム(csargs1.cs)の実行結果例C言語ではmain関数のパラメータ変数を「argc」と「argv」で記述していたように、C#プログラムではMainメソッドのパラメータ変数は通常「args」と記述する。C#ではエントリ・ポイントとして認識されるMainメソッドは、次の4つのシグネチャのいずれかでなければならない。.NET(以下VB.NET)でも文字列の配列をパラメータとするMainメソッドを記述することにより、コマンドライン引数を取得できる。次のサンプル・プログラムは、上記のC#のプログラムをVB.NETで書き直したものだ。vbargs.vb指定されたコマンドライン引数を表示するVB.NETのサンプル・プログラム(vbargs.vb)vbargs.vbのダウンロードVB.NETで記述可能なMainメソッド(Mainプロシージャ)は次の4種類である。.NETを使用してVB.NETでWindowsアプリケーションを作成する場合、デフォルトではMainメソッドはコードとして現れない。これについては「TIPS:VB.NETでアプリケーション起動時に実行されるフォームを変更するには?」を参照していただきたい。Frameworkでは、Mainメソッドのパラメータ以外でもコマンドライン引数を取得する手段が用意されている。これはEnvironmentクラス(System名前空間)のGetCommandLineArgsメソッドを使用する方法だ。このメソッドもコマンドライン引数を文字列の配列として取得する。こちらの場合では実行したコマンド名が配列の最初の要素に含まれる。次のサンプル・プログラムも先ほどと同様に、コマンドライン引数で指定された文字列を順に表示する。csargs2.csGetCommandLineArgsメソッドによりコマンドライン引数を取得し表示するサンプル・プログラム(csargs2.cs)csargs2.csのダウンロードEnvironmentクラスにはコマンドライン全体が入ったCommandLineプロパティも用意されている。このサンプル・プログラムの最後の行では、このプロパティの値も表示している。サンプル・プログラムの実行例は次のようになる。最初の行には実行したコマンド名が表示されている。最後の行はCommandLineプロパティの内容。表示された実行結果の最初の文字列が、実行したコマンド名(この場合にはcsargs2)となっているのが分かるだろう。通常この最初の文字列はEXEファイルのファイル名となるが、これはコマンドラインで入力した文字列そのままのものだ。プログラムを「c:\c#tips\030cmdargs\csargs2.exe」と入力して実行すれば、この文字列も「c:\c#tips\030cmdargs\csargs2.exe」となる。正確なEXEファイルの名前を取得したいのであれば「TIPS:実行ファイルのパスを取得するには?」に示した方法で取得できる。以上で解説は終わりだが、Mainメソッドのパラメータで取得できるにもかかわらずこのようなメソッドが用意されているのはなぜだろうか。考えられる理由の1つは、Mainメソッドを持たない.NETの言語があり得るからである。.NETでは、次のようにクラスやメソッドの定義なしにいきなりコードを記述することができる。.NETではそれを明示的に記述することはできない。より自動抽出したものです。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。