start方法说明

本文关键字:说明 方法 start | 更新日期: 2023-09-27 18:09:39

这段代码来自Programming Windows,第六版书:

using Windows.ApplicationModel.Activation; 
using Windows.UI; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Media;    
namespace StrippedDownHello
{
    public class App : Application
    {
        static void Main(string[] args)
        {
            Application.Start((p) => new App());
        }
        ...
    }
}

我无法理解Application.Start((p) => new App());行的语法。在类文档中,Start方法定义为:

public static void Start(ApplicationInitializationCallback callback);

请向我解释一下这行带有lambda表达式的代码是如何与Start方法定义相关的

start方法说明

lambda是编写ApplicationInitializationCallback实例的快捷方式

你可以检查这个委托的签名,看到它确实接受了一个参数,但没有返回任何东西。

在你的例子中,lambda就是这样做的:接受一个参数p,实例化一个App,不返回任何东西。

如果不使用lambda,你可以这样写:

        static void Main(string[] args)
        {
            Application.Start(new ApplicationInitializationCallback(Start));
        }
        private static void Start(ApplicationInitializationCallbackParams p)
        {
            new App();
        }