()=>"的目的是什么?

本文关键字:是什么 quot | 更新日期: 2023-09-27 18:13:58

我以前在Uni编程课上没有真正遇到过这种语法,我很好奇它是什么意思。

我必须实现它的唯一一次是:

  1. 当我必须创建一个必须添加到ProgressChanged事件的BackgroundWorker

    Invoke((MethodInvoker)(() => updatePing((int) e.UserState)));

  2. 在研究使用Caliburn的教程时。微MVVM框架

    NotifyOfPropertyChange(() => Count);

我试着搜索这个符号的意思,但它使用的特殊字符似乎与谷歌搜索混乱,我不知道它叫什么

()=>"的目的是什么?

=>是lambda表达式的语法。

()表示没有参数——如果有参数并且类型可以从上下文中推断出来,它们可以像这样指定:

(x, y) => x + y

或者显式指定类型

(int x, string y) => x + y.Length

如果只有一个形参,并且它的类型可以推断出来,则不需要括号:

x => x.Length

这是一个没有参数的lambda表达式。

你真正在做的,是传递一个delegate(这有点像方法的变量)到你的函数


() => Count表示类似于以下

的方法
type methodName()
{
    return Count;
}