开发者

what is the use of ()=> in silverllight

Can you say what is the use of the ()=> and =>? I saw this in a code. I did not get any reference fo开发者_运维技巧r this.

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


=> is the lambda operator in C# and is read as "goes to". A lambda expression is an anonymous function and can be used to create a delegate.

Your example takes no arguments as indicated by the empty parens preceding the lambda operator. A lambda expression with one argument might look like this:

n => n.toString()

That expression would return the string representation of n, when invoked. A lambda expression can have multiple arguments as well, contained in parentheses:

(n, f) => n.toString(f)

A common use would be in a Func<T>:

Func<int, string> getString = n => n.toString();
int num = 7;
string numString = getString(num);

This is, of course, a silly example, but hopefully helps to illustrate its use.


This notation is that of a lambda expression which takes no argument. If the lambda expression made use of arguments they would be declared in the empty set of parenthesis as in say...

this.Dispatcher.BeginInvoke((x, y) => { do some' with x and/or y }, 12, somevar);

In a nutshell, lambda expressions allows creating "nameless" functions, right where they are needed.
In the example of the question, the BeginInvoke() method requires its first parameter to be a delegate (a "pointer to a method"), which is exactly what this lambda expression provides.


It's a lambda expression that has no parameters.


Check out this page http://codebetter.com/karlseguin/2008/11/27/back-to-basics-delegates-anonymous-methods-and-lambda-expressions/

If you don’t have any parameters, like in our example, you use empty paranthesis:

() => {…}

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜