我想传递一个方法并存储它。假设该方法采用一个 int 并返回 void。我会将它包装在 Action< int > 中。
现在,有没有一种方法可以调用该方法,但不是调用它源自的对象,而是同一类的不同实例?
比这更具体有点困难,但请询问是否有任何令人困惑的地方,我会再试一次。
现在,有没有一种方法可以调用该方法,但不是调用它源自的对象,而是同一类的不同实例?
编辑:好的,忽略我的第一次尝试。我以为你在谈论不同的课程。
听起来您实际上应该将方法包装在一个Action<object, int>
(或更强类型的版本)中。
或者,您可以使用以下方法创建新委托:
Action<int> newAction = (Action<int>) Delegate.CreateDelegate(typeof(Action<int>),
newTarget,
oldAction.Method);
您可以使用采用参数类型的Type.GetMethod 重载。这使您可以使用指定的参数类型获得确切的方法。