C# ()=>;的用途是什么;在银光下
你能说出C# ()=>;的用途是什么;在银光下,c#,silverlight,C#,Silverlight,你能说出()=>和=>的用法吗?我在代码中看到了这一点。我没有得到这方面的任何参考资料 this.Dispatcher.BeginInvoke(()=> { //some thing.. }; 它是一个没有参数的符号。这个符号是一个不带参数的符号。如果lambda表达式使用参数,它们将在空括号中声明,例如 this.Dispatcher.BeginInvoke((x,y)=>{dosome'与x和/或y},12,somevar) 简而言之,lambda表达式允许在需要的地方创建“
()=>
和=>
的用法吗?我在代码中看到了这一点。我没有得到这方面的任何参考资料
this.Dispatcher.BeginInvoke(()=>
{
//some thing..
};
它是一个没有参数的符号。这个符号是一个不带参数的符号。如果lambda表达式使用参数,它们将在空括号中声明,例如
this.Dispatcher.BeginInvoke((x,y)=>{dosome'与x和/或y},12,somevar)代码>
简而言之,lambda表达式允许在需要的地方创建“无名”函数。
在问题的示例中,BeginInvoke()方法要求其第一个参数为委托(“指向方法的指针”),这正是lambda表达式提供的 =>
是C#中的数字,读作“转到”。lambda表达式是一个匿名函数,可用于创建委托
您的示例不接受lambda运算符前面的空参数指示的参数。带有一个参数的lambda表达式可能如下所示:
n => n.toString()
该表达式将在调用时返回n
的字符串表示形式。lambda表达式也可以有多个参数,包含在括号中:
(n, f) => n.toString(f)
常用于Func
:
Func getString=n=>n.toString();
int num=7;
字符串numString=getString(num);
当然,这是一个愚蠢的例子,但希望有助于说明它的用法。查看此页面
如果没有任何参数,如我们的示例中所示,则使用empty
妄想症:
()=>{…}
Func<int, string> getString = n => n.toString();
int num = 7;
string numString = getString(num);