0

我想传递一个方法并存储它。假设该方法采用一个 int 并返回 void。我会将它包装在 Action< int > 中。

现在,有没有一种方法可以调用该方法,但不是调用它源自的对象,而是同一类的不同实例?

比这更具体有点困难,但请询问是否有任何令人困惑的地方,我会再试一次。

4

2 回答 2

3

现在,有没有一种方法可以调用该方法,但不是调用它源自的对象,而是同一类的不同实例?

编辑:好的,忽略我的第一次尝试。我以为你在谈论不同的课程

听起来您实际上应该将方法包装在一个Action<object, int>(或更强类型的版本)中。

或者,您可以使用以下方法创建新委托:

Action<int> newAction = (Action<int>) Delegate.CreateDelegate(typeof(Action<int>),
                                          newTarget,
                                          oldAction.Method);
于 2012-09-06T09:23:15.687 回答
2

您可以使用采用参数类型的Type.GetMethod 重载。这使您可以使用指定的参数类型获得确切的方法。

于 2012-09-06T09:22:53.203 回答