()=>的用途是什么在银光

时间:2011-09-30 23:06:50

标签: c# silverlight

您能说出()=>=>的用途吗?我在代码中看到了这个。我没有得到任何参考。

this.Dispatcher.BeginInvoke(()=>
{
    //some thing..
};

4 个答案:

答案 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)

请查看此页面http://codebetter.com/karlseguin/2008/11/27/back-to-basics-delegates-anonymous-methods-and-lambda-expressions/

  

如果您没有任何参数,例如我们的示例,则使用空   paranthesis:

     

()=&gt; {...}