我正在看" Contose Cookbook"有关创建Windows 8.1应用程序的培训。
通过第一个实验室,我看到variable += function;
之类的东西。该函数没有paranthesis,据我所知,你可以创建没有paranthesis的函数,这些属性是属性,但是你必须用它来调用它们。
这是我发现的一个课程:
namespace ContosoCookbook
{
sealed partial class App : Application
{
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
}
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
...
}
}
接受此类型的呼叫或功能是什么类型。
来自msdn。的<{3}}事件。
答案 0 :(得分:5)
有问题的事件处理程序接受一个与方法参数匹配的委托,允许它接受一个方法组。
举个简单的例子,任何Action
变量都可以接受任何没有参数的void方法作为方法组。上述事件处理程序的委托可能需要object
来指示发件人和某种EventArguments
。
最常见的代理是Action<T>
,Func<T>
和Predicate<T>
,它们代表void方法,具有指定返回类型的方法和分别返回布尔值的方法。他们也可以被分配lambdas。它们都有不同数量的参数。它们在某些情况下非常有用。
请注意,分配委托不会调用它;这可以在以后完成。代表们也可以合并。值得注意的是,委托可以使用局部变量做一些奇怪的事情:如果你为(name) => tempName += name
分配一个委托,其中tempName
是一个局部变量,你的局部变量将在调用时修改代表。这是有道理的,但可能并不明显。
答案 1 :(得分:3)
除了Magus&#39;回答,这是不调用函数,它正在传递对可能稍后调用的函数的引用。
答案 2 :(得分:0)
这是一个事件绑定代码 您可能想查看此Events