what is the use of ()=> in silverllight

后端 未结 4 1117
北海茫月
北海茫月 2020-12-11 08:58

Can you say what is the use of the ()=> and =>? I saw this in a code. I did not get any reference for this.

this.Dispatcher.B         


        
相关标签:
4条回答
  • 2020-12-11 09:26

    It's a lambda expression that has no parameters.

    0 讨论(0)
  • 2020-12-11 09:29

    => 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.

    0 讨论(0)
  • 2020-12-11 09:44

    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.

    0 讨论(0)
  • 2020-12-11 09:46

    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 讨论(0)
提交回复
热议问题