C#:语句的含义... Action wrappedAction =()=>

deo*_*oll 0 c#-3.0

看到这里的代码.谁能告诉我这意味着什么?

    Action wrappedAction = () => 
    { 
        threadToKill = Thread.CurrentThread; 
        action(); 
    }; 
Run Code Online (Sandbox Code Playgroud)

我们可以用.net v2.0编写这样的代码吗?

Gra*_*ton 5

这意味着它wrapAction是一个委托,它不接受任何参数并执行以下代码块

  threadToKill = Thread.CurrentThread; 
  action();
Run Code Online (Sandbox Code Playgroud)

它相当于

public delegate void wrapActionDel(); 

public void wrapAction()
{
      threadToKill = Thread.CurrentThread; 
      action();
}

public void CallwrapAction()
{
   wrapActionDel del = wrapAction;
   del ();
}
Run Code Online (Sandbox Code Playgroud)

你可以看到这很冗长,但事实Action并非如此.

而且,这仅适用于.Net 3.5.不用担心,您的.net 2.0代码将与.net 3.5无缝协作,因此您只需升级即可.