Windows.UI.Xaml.Application.Start方法说明

时间:2013-04-17 07:54:01

标签: c# windows-8

此代码来自编程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方法定义相关。

1 个答案:

答案 0 :(得分:1)

lambda只是编写ApplicationInitializationCallback

实例的捷径

您可以检查此委托的签名,并确定它确实需要一个参数并且不返回任何内容。

在你的例子中,lambda正是这样做的:接受一个参数p,实例化一个App并且不返回任何内容。

不使用lambda,你会这样写:

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

        private static void Start(ApplicationInitializationCallbackParams p)
        {
            new App();
        }