是否可以将方法插入列表<>?

时间:2012-12-30 07:53:50

标签: c# delegates

我有两个清单。一个具有用户选择的对象。第二个将包含将在第一个列表中的对象上使用的方法。

List 1 List2

Paul Method ShakeHand

Mark Method HighFive

Annie Method Hug

我会使用索引来使列表2中的方法0使用列表1中的对象0。 他们将继续列入清单,直至采取每一项行动。

我尝试使用Add()内部方法,但没有运气。 我也没有运气谷歌,因为我不确定我应该使用什么术语。

3 个答案:

答案 0 :(得分:3)

您可以通过插入对象(即类的实例)来完成此操作。

使用名为Greet或类似方法的方法创建基类。创建实现Greet方法的子类,并执行ShakeHandHighFiveHug。插入适当子类的实例,然后在需要时调用Greet方法。

答案 1 :(得分:2)

使用Func<T1, T2, .., TReturn>Action<T1, ... Tn>代表。唯一的问题是方法需要具有相同的签名。

答案 2 :(得分:0)

这对我来说听起来有点动态。我使用反射,用于使用可用方法填充选择列表,以及用于调用 - 这引出了我们的参数问题。所有提出的解决方案都假设所有要调用的方法都具有相同的签名。如果这是真的,那么这些建议中的任何一个都会起作用,我和Dmitry需要最少的维护来添加方法。如果您有合适的框架版本,Dmitry的版本会更好(但您仍然需要反射来填充您的选择列表)。