我正在尝试从通用委托转换为命名委托。
结果符合以下精神(无效的 C#):
Action<CustomClass> act = ???;
CustomDelegate d = act;
我试过了
CustomDelegate d = act.Invoke;
CustomDelegate d = new CustomDelegate( act );
CustomDelegate d = new CustomDelegate( x => act(x) );
CustomDelegate d = new CustomDelegate( act.Invoke );
所有这些都在运行时失败,并给出ArgumentException
错误
委托给实例方法不能有 null 'this'。
不是我的代码的堆栈顶部是:
在 System.MulticastDelegate.ThrowNullThisInDelegateToInstance()
在 System.MulticastDelegate.CtorClosed(对象目标,IntPtr methodPtr)
如何转换委托以使我没有异常?