您能说出()=>
和=>
的用途吗?我在代码中看到了这个。我没有得到任何参考。
this.Dispatcher.BeginInvoke(()=>
{
//some thing..
};
答案 0 :(得分:6)
=>
是C#中的lambda operator,读作“转到”。 lambda表达式是一个匿名函数,可用于创建委托。
您的示例不带任何参数,如lambda运算符前面的空parens所示。带有一个参数的lambda表达式可能如下所示:
n => n.toString()
该表达式在调用时将返回n
的字符串表示形式。 lambda表达式也可以有多个参数,包含在括号中:
(n, f) => n.toString(f)
常见用法是Func<T>
:
Func<int, string> getString = n => n.toString();
int num = 7;
string numString = getString(num);
这当然是一个愚蠢的例子,但希望有助于说明它的用法。
答案 1 :(得分:3)
这是一个没有参数的lambda expression。
答案 2 :(得分:3)
这种表示法是lambda expression的表示法,不带参数。如果lambda表达式使用了参数,则它们将在空括号中声明,如说...
this.Dispatcher.BeginInvoke((x, y) => { do some' with x and/or y }, 12, somevar);
简而言之,lambda表达式允许在需要的地方创建“无名”函数 在问题的示例中, BeginInvoke()方法要求其第一个参数是委托(“指向方法的指针”),这正是此lambda表达式提供的内容。
答案 3 :(得分:0)
如果您没有任何参数,例如我们的示例,则使用空 paranthesis:
()=&gt; {...}