【发布时间】:2016-08-21 07:47:31
【问题描述】:
我需要能够将我的类(或基类)的方法传递给基类方法(因为它必须在那里做更多的事情)。
我知道以下可能性:在我的基类中,我有 public void Call(Action action) 方法,它将简单地调用 action() 并执行其他操作。
但我不想限制更多,因为现在我可以把所有东西都放在这个方法中,例如Call(() => string.Format("Some {0}, "text)); 但我只想允许自己类型或基类型的方法。
我想到了public void Call(Expression<Func<MyClassType, Action>> expressionToAction) 之类的东西,但我在这里不明白。
这甚至可能吗?使用表达式参数,我得到了该方法必须返回 Action 的错误,这完全不是我想要的。
【问题讨论】:
-
基类中的简单虚方法如何,被子类型中的具体实现覆盖?
-
Func<X, Action>不保证任何关于返回的Action。你实际上想达到什么目的?如果你提供一个具体的例子来说明你为什么要这样做,也许一开始就有更好的方法来做到这一点。
标签: c# generics reflection expression invoke