Я - новичок когда дело доходит до программирования, но я был уверен, что одно из универсальных правил было то, что программа запускается с Основного (). Я не вижу тот, когда я создаю проект WPF. Является Основным (), просто назвал что-то по-другому в WPF?
Он создается во время сборки, но вы можете предоставить свой собственный (при необходимости устраняя неоднозначность в свойствах проекта). Найдите файл приложения в obj / debug; У меня есть (любезно предоставлено "C # 2010 Express") App.gics
с:
namespace WpfApplication1 {
/// <summary>
/// App
/// </summary>
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public partial class App : System.Windows.Application {
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
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()]
public static void Main() {
WpfApplication1.App app = new WpfApplication1.App();
app.InitializeComponent();
app.Run();
}
}
}
Main ()
автоматически предоставляется CLR и WPF.
Компилятор C # принимает ключ командной строки / m
, который указывает тип, содержащий реализацию Main ()
. По соглашению, если явно не указан запускаемый объект, CLR будет искать любой класс, имеющий статический метод Main ()
, и вызовет его. (Как отметил в своем комментарии @Marc Gravel)
В случае WPF, Main ()
автоматически создается при сборке App.xaml
и переключателе / m указывается, чтобы компилятор C # использовал этот класс в качестве точки входа. Однако, если вы посмотрите на свойства проекта, вы обнаружите, что там есть настройка для выбора объекта запуска. Так что, если хотите, вы можете предоставить свой собственный класс, реализующий Main ()
.
Обратите внимание, что это возлагает на вас ответственность за создание экземпляра Application
и вызов его метода Run ()
для обеспечения правильного запуска инфраструктуры WPF.
Main ()
генерируется во время компиляции. Вы можете найти его в App.g.cs
(в папке obj / {Debug, Release}
).
main ()
- стандартная точка входа для приложения, но все приложения структурированы таким образом. В проекте XAML файл App.XAML указывает точку входа, где указано StartupUri = "MainWindow.xaml"
.
Как утверждают другие, фактическая функция main создается на основе содержимого файлов XAML в проекте.