我有拖车清单。一个具有用户选择的对象。第二个将包含将在第一个列表中的对象上使用的方法。
List 1
List2
Paul
Method ShakeHand
Mark
Method HighFive
Annie
Method Hug
我将使用索引使列表 2 中的方法 0 使用列表 1 中的对象 0。他们将继续沿列表向下移动,直到采取每个操作。
我试过使用Add()
里面的方法,但没有运气。我也没有运气使用谷歌,因为我不确定我应该使用什么术语。
您可以通过插入一个对象来做到这一点——即一个类的实例。
Greet
使用命名或类似方法创建基类。创建实现该Greet
方法并执行ShakeHand
、HighFive
或的子类Hug
。插入适当子类的实例,然后Greet
在需要时调用该方法。
使用Func<T1, T2, .., TReturn>
或Action<T1, ... Tn>
代表。唯一的问题是方法需要具有相同的签名。
这对我来说听起来有点动态。我会使用反射,既用于使用可用方法填充选择列表,也用于调用——这将我们引向参数问题。所有提议的解决方案都假定所有要调用的方法都具有相同的签名。如果这是真的,那么这些建议中的任何一个都将起作用,我和 Dmitry 需要最少的维护才能添加方法。如果您有合适的框架版本,Dmitry 的版本会更好(但您仍然需要反思来填充您的选择列表)。