考虑以下:
public void Step(Action code){}
要重用此代码,我通常将lambda表达式传递为:
tr.Step(() => StaticType.SomeMethod(someParameter);
在其他时候,我可以简单地通过一个void函数,而无需使用lambda表达式:
tr.Step(SomeNonStaticType.SomeMethod);
其中SomeMethod是:
public override void SomeMethod(){}
有人可以向我解释一下吗?
编辑:要清除都具有无效的返回类型。编辑2:如果我问这些问题,我应该读哪本书(请在评论中)。
Action
是具有0个参数且没有返回值的方法的委托。
您可以将符合这些条件的任何方法传递给您的tr.Step
。
您不能使用具有参数或返回类型为的方法Action
,因为签名不匹配。为此,您需要执行类似的操作() => StaticType.SomeMethod(someParameter)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句