我之前在Uni的编程课程中并没有真正遇到过这种语法,我很好奇它的含义。
我必须实施的唯一一次是:
当我必须创建一个必须添加到BackgroundWorker
事件的ProgressChanged
时
Invoke((MethodInvoker)(() => updatePing((int) e.UserState)));
在研究使用Caliburn.Micro MVVM框架的教程时
NotifyOfPropertyChange(() => Count);
我已经尝试过搜索这种符号的含义,但它使用的特殊字符似乎与谷歌搜索混淆,我不知道它的名称。
答案 0 :(得分:22)
=>
是lambda expression的语法。
()
表示没有参数 - 如果有参数且类型可以从上下文中推断出来,则可以将它们指定为:
(x, y) => x + y
或明确指定类型
(int x, string y) => x + y.Length
如果只有一个参数并且可以推断出其类型,则不需要括号:
x => x.Length
答案 1 :(得分:10)
这是一个没有参数的lambda表达式。
你真正在做的是将delegate
(有点像方法的变量)传递给你的函数
() => Count
表示类似于以下内容的方法
type methodName()
{
return Count;
}