.NETでは、プロセスのエントリポイントはMain
メソッドになります。 このメソッドは任意の名前のクラスに持たせることができます。 プロセス名とクラス名を異なるものにすることもできます。
エントリポイント(Mainメソッド)はstatic
(VBではShared
)なメソッドにする必要があります。 一方、エントリポイントを持つ型(クラスまたは構造体)自体はstatic
である必要はありません。
また、誤って呼び出されてしまう可能性を排除するため、エントリポイントはpublic
にするべきではないとされています。 ただし、エントリポイントをpublic
にしてもエラー等にはならず、エントリポイントとしての動作に変わりはありません。
Main
という名前のメソッド以外をエントリポイントにすることはできません。 コンパイラはMain
という名前のメソッドを探し、それをエントリポイントとして使用します。
プロセスの引数・コマンドライン引数を受け取りたい場合は、Main
メソッドの引数として受け取ります。 コマンドライン引数については§.コマンドライン引数で解説します。
また、Main
メソッドの戻り値をint
/Integer
にすることで、プロセスの終了ステータスを返すようにすることもできます。 終了ステータスについては§.終了ステータス(終了コード)で解説します。
Mainメソッドを非同期(async)メソッドとする場合、戻り値の型をTaskにします。 終了ステータスを返す場合は、Task<int>にします。 非同期のMainメソッドはC#7.1以降で使用できます。