Mainメソッドはどこにいった?
Hello worldを作る手順の中でAppクラスがWPFにおけるMainメソッドを持つエントリポイントのようなクラスであるという説明を行いましたが、これについてもう少し詳しく説明したいと思います。App.xamlとApp.xaml.csがコンパイルされる際に、以下のようなコードがコンパイラによって生成されます。このコードを見るには、ソリューションエクスプローラですべてのファイルを表示するように設定して「obj→Debug→App.g.cs」というコードを開きます。
namespace HelloWorld { /// <summary> /// App /// </summary> public partial class App : System.Windows.Application { /// <summary> /// InitializeComponent /// </summary> [System.Diagnostics.DebuggerNonUserCodeAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] public void InitializeComponent() { #line 4 "..\..\App.xaml" this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); #line default #line hidden } /// <summary> /// Application Entry Point. /// </summary> [System.STAThreadAttribute()] [System.Diagnostics.DebuggerNonUserCodeAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] public static void Main() { HelloWorld.App app = new HelloWorld.App(); app.InitializeComponent(); app.Run(); } }
このように、WPFアプリケーションではMainメソッドはコンパイラによって生成されています。