作为参数传递给方法 C#2.0 的方法
如果我有一段这样的代码:
private void DoOperations(//method passed in)
{
executeA();
executeB();
// run method passed in to DoOpertions()
executeC();
}
是否可以将方法作为参数传递?该方法本身可能有 X 个参数?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以通过代表。委托是一个方法指针,与其引用的方法具有相同的签名。
如需了解更多信息,请访问代表。
You can pass a delegate. Delegate is a method pointer, with the same signature as the method it is referencing.
See more at Delegates.
只是为了补充 Nenad 的答案,.Net 框架中有许多内置委托,您应该尝试尽可能多地使用它们,而不是重新发明自己的委托来做同样的事情。
如果委托没有返回值,则使用 Action 委托,否则使用 Func 委托,每个委托最多重载 4 个输入参数。
Just to add to Nenad's answer, there are a number of built-in delegates in the .Net framework which you should try to use as much as possible, rather than re-inventing your own delegates that do the same thing.
Use the Action delegate if the delegate doesn't have a return value, otherwise use the Func delegates, each are overloaded with up to 4 input parameters.
是的,使用匿名函数。
查看这篇文章 C#为工具箱寻找新的工具,如何模板化此代码
Yes, use anonymous functions.
Checkout this post C# searching for new Tool for the tool box, how to template this code
是的,您可以使用该类型的参数定义委托和 DoOperations() 函数。
在此处输入代码
yes you can define delegate and DoOperatios() function with argument of that type.
enter code here
当然可以,对于不需要的参数
Action
[1][1] http://msdn.microsoft.com/en-us/library/018hxwa8.aspx
Sure it is, for no parameters you want
Action
[1][1] http://msdn.microsoft.com/en-us/library/018hxwa8.aspx