PR

[C#] Mainメソッド(エントリーポイント)について

C#でコードを書こうとするとこんな感じでMainという名前のメソッドがでてきます。

using System;

class Program {
    static void Main(string[] args) {
        Console.WriteLine("Hello World!");
    }
}

このMainメソッドはエントリーポイントと呼ばれ、プログラムが実行されると最初に呼び出されるメソッドで、Mainメソッド内の処理が終わるとそのプログラムが終了します。

コンソールアプリケーションやウィンドウを表示するアプリケーションで必須のメソッドになります。
Mainメソッドはプロブラム内で1つである必要があります。

Mainメソッドはstaticである必要があります。
アクセスレベルはprivate、publicはどちらでもOKみたいです。
上のコードはprivateが省略されている。

スポンサーリンク

Mainメソッドの種類(引数と戻り値)

1つのプログラムで書くことができるMainメソッドは「引数あり/なし」「戻り値あり/なし」で4種類あります。

//引数なし、戻り値なし
static void Main() { }
//引数なし、戻り値あり
static int Main() { }
//引数あり、戻り値なし
static void Main(string[] args) { }
//引数あり、戻り値なし
static int Main(string[] args) {}

Mainメソッドの引数、戻り値についてはこちらの記事にまとめました。

[C# 入門] コマンドライン引数とプログラムの終了コード
プログラムを実行する際に文字列のパラメーターを渡すことが出来ます。これをコマンドライン引数といいます。 また、プログラムの終了時にint型の戻り値(終了コード)を返すことが出来ます。 引数?戻り値??という人は メソッドの使い方を見てくださ...

Mainメソッドの戻り値について

Mainメソッドの戻り値には、voidまたはintを指定することができる。
戻り値なしの場合はvoid、
戻り値としてなんらかのコード(正常終了なら0とか)を返す場合はintを指定する。
戻り値は他のメソッドと同じようにreturnで指定する。

using System;
class Program {
    static int Main(string[] args) {
        Console.WriteLine("Hello World!");        
        return 0;  //戻り値の指定
    }
}

Mainメソッドの引数について

Mainメソッドの引数(string[] args)を指定した場合、プログラムが起動された際のコマンドライン引数が渡されます。

スポンサーリンク

Mainメソッドの省略

C#9からMainメソッドを省略してコードが書けるようになりました。
最上位レベルのステートメントというらしいです。
こんな感じに書いても動きます。

using System;

Console.WriteLine("Hello World!");
return -1;  //returnでint型の値を返すことができる

引数はargsという名前で渡されるみたい。

using System;

if (args.Length > 0) Console.WriteLine("引数あり");
else Console.WriteLine("引数なし");

もっと知りたいと言う方はマイクロソフトのページを見てみてください。

最上位レベルのステートメント - Main メソッドを使用しないプログラム - C#
最上位レベルのステートメントについて説明します。 Program クラスと Main メソッドの形式を使用せずにプログラムを作成できます。

いつの間にかプロジェクトの作成時に省略するかを選択できるようになっていた。(2024/02/29追記)

新規プロジェクト作成時に最上位レベルのステートメントの使用有無を選択できるになっていた

C# 記事まとめページに戻る(他のサンプルコードもこちら)

C# プログラミング講座
C#についての記事まとめページです。開発環境VisualStudioのインストール方法や使い方、プログラミングの基礎知識についてや用語説明の記事一覧になっています。講座の記事にはすぐに実行できるようにサンプルコードを載せています。

コメント