ロゴ

ApplicationConfiguration.Initialize()って何?

c#WinFormアプリケーションのエントリポイントについて


この間WinFormsをいじっていたら、.NET frameworkのときからエントリポイントが変わっていることに気づきました。

ApplicationConfiguration.Initialize();・・・なんだこれ。

気になったので調べてみると、.NET 6以降のフレームワークでは、エントリポイントの記述はかなり簡潔になったようです。

一個のメソッド(エントリポイントにおける一時的なAPI)に統一されたようですね。


.NET6 以前

Program.cs

    
namespace Sample
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

    

Applicationクラスの各種メソッド・設定については、こちらをご覧ください。


.NET6 以後

Program.cs

    
namespace MyApp;

static class Program
{
    [STAThread]
    static void Main()
    {
        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }
}

    

C#10以降では、namespace名前空間の宣言はそのファイルで定義されるすべてのファイルに対して適用されるので、中かっこを省略することができます。

くわしくはこちらをご覧ください。