サンプルでは
Programクラスに
Mainメソッドというものが用意されていましたが、この
Mainというメソッドは、実は特別な役割を持つものなのです。これは、アプリケーションが起動したとき、最初に呼び出され実行されるメソッドなのです。これは一般に「
エントリーポイント」と呼ばれます。
C#では、プログラムを実行すると、その中にあるクラスから
Mainメソッドを検索し、それを実行します。この
Mainメソッドがない場合、プログラムは実行できないのです。
この
Mainメソッドは、必ず以下のように定義されている必要があります。
・Mainメソッドの基本形public static void Main(string[] args)
{
……実行する処理……
}
public――これは「公的な(公開された)」ということを示すものです。「このメソッドはどこからでも呼び出せますよ」ということを示しています。
static――これは「静的な」ということを示します。クラスというのは、それをもとにオブジェクトというのを作って利用するのですが、この
staticなメソッドは、クラスから直接呼び出して使える、ということを示します。
void――これはメソッドの返値のところで出てきました。「何も値を返さない」ということを示します。
Main――これがメソッドの名前です。
(string[] args)――これは引数の指定です。
argsという名前の
string配列(テキストの配列)が引数として渡されることを示します。
これらは、すべてこの通りに用意しないといけません(まぁ、引数の
argsという変数名は変えても大丈夫ですが)。ちょっとでも違っていると、「エントリーポイントの
Mainメソッドじゃないぞ」と判断されてしまうので注意ください。
※引数のargsについてこの
Mainは、決まった形で書くだけなのであまり応用できるような機能もないのですが、一つ覚ええておきたいのは「引数の
args」です。
この
argsには、このプログラムを実行する際につけられた引数がまとめて保管されています。コマンドプロンプトからコマンドを実行する際、コマンドの後にテキストをつけて送ることができます(これが引数)。こうして付けられたものが、そのまま
string配列として
Mainメソッドのargsに渡されるのです。
実際に、この
argsを使った例を下にあげておきます。コンパイルしたら、まず「
MyApp.exe」とだけ実行してください(作成されたアプリ名が「
MyApp.exe」の場合)。単に「ども。」とだけ表示されます。
それを確認したら、「
MyApp.exe Taro」というように実行してみましょう。今度は、「こんにちは、Taroさん。」と表示されます。引数の
Taroが
Mainの
args配列に渡され、この
args[0]の値を使ってメッセージを表示していたのですね。
ここでは、
ifを使って「
args.Length」というものをチェックしていますが、これは
argsに保管されている値の数を調べるものです。引数が何もなければ、ここには何も値が保管されないので
args.Lengthはゼロになります。1つでも引数があれば、ゼロ以上の値となります。これを利用して、引数が付いているかどうかをチェックし、それに応じてメッセージを表示していたのですね。