Никакое основное () в WPF?

Я - новичок когда дело доходит до программирования, но я был уверен, что одно из универсальных правил было то, что программа запускается с Основного (). Я не вижу тот, когда я создаю проект WPF. Является Основным (), просто назвал что-то по-другому в WPF?

116
задан HireThisMarine 5 February 2018 в 17:05
поделиться

4 ответа

Он создается во время сборки, но вы можете предоставить свой собственный (при необходимости устраняя неоднозначность в свойствах проекта). Найдите файл приложения в 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();
        }
    }
}
71
ответ дан 24 November 2019 в 02:16
поделиться

Main () автоматически предоставляется CLR и WPF.

Компилятор C # принимает ключ командной строки / m , который указывает тип, содержащий реализацию Main () . По соглашению, если явно не указан запускаемый объект, CLR будет искать любой класс, имеющий статический метод Main () , и вызовет его. (Как отметил в своем комментарии @Marc Gravel)

В случае WPF, Main () автоматически создается при сборке App.xaml и переключателе / ​​m указывается, чтобы компилятор C # использовал этот класс в качестве точки входа. Однако, если вы посмотрите на свойства проекта, вы обнаружите, что там есть настройка для выбора объекта запуска. Так что, если хотите, вы можете предоставить свой собственный класс, реализующий Main () .

Обратите внимание, что это возлагает на вас ответственность за создание экземпляра Application и вызов его метода Run () для обеспечения правильного запуска инфраструктуры WPF.

13
ответ дан 24 November 2019 в 02:16
поделиться

Main () генерируется во время компиляции. Вы можете найти его в App.g.cs (в папке obj / {Debug, Release} ).

6
ответ дан 24 November 2019 в 02:16
поделиться

main () - стандартная точка входа для приложения, но все приложения структурированы таким образом. В проекте XAML файл App.XAML указывает точку входа, где указано StartupUri = "MainWindow.xaml" .

Как утверждают другие, фактическая функция main создается на основе содержимого файлов XAML в проекте.

6
ответ дан 24 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: