C# 9.0以降では、型宣言・Mainメソッド宣言を省略してステートメントを直接記述することができます。 トップレベルステートメントを使ったコードでは、ファイル全体がMainメソッドであるかのように扱われます。
トップレベルステートメントで暗黙のエントリポイントを記述する C# 9.0
using System;
// 型宣言・メソッド宣言を省略して直接ステートメントを記述できる
string text = "Hello, world!";
Console.WriteLine(text);
#if false // 上記のコードはコンパイル時に以下のように展開される
using System;
namespace RootNamespace {
class Program {
static void Main()
{
string text = "Hello, world";
Console.WriteLine(text);
}
}
}
#endif
実行結果
Hello, world!
トップレベルステートメントでは、コマンドライン引数をメソッドの引数として取得することができないので、代わりにEnvironment.GetCommandlineArgsメソッドを使って取得します。