看到代码here。谁能告诉我这意味着什么?
Action wrappedAction = () =>
{
threadToKill = Thread.CurrentThread;
action();
};
我们可以用.net v2.0编写这样的代码吗??
答案 0 :(得分:5)
这意味着wrapAction
是一个委托,它不接受参数并执行以下代码块
threadToKill = Thread.CurrentThread;
action();
相当于
public delegate void wrapActionDel();
public void wrapAction()
{
threadToKill = Thread.CurrentThread;
action();
}
public void CallwrapAction()
{
wrapActionDel del = wrapAction;
del ();
}
您可以看到这是详细的,但Action
不是。
而且,这仅适用于.Net 3.5。不用担心,您的.net 2.0代码将与.net 3.5无缝协作,因此您只需升级即可。
答案 1 :(得分:2)
这是一个lambda表达式,仅在C#3.0+中可用。该代码的C#2.0版本如下所示:
Action wrappedAction = delegate()
{
threadToKill = Thread.CurrentThread;
action();
};
假设您之前已声明了Action委托。