method
已经是int
开始执行的位置的地址(它是一个 )。大概这个地址与它所关联的对象实例相关联,那么为什么委托需要对象(Target
)?
问问题
257 次
1 回答
3
假设没有存储目标。调用实例方法的委托应该做什么?this
如果没有作为当前实例的对象引用( C# 中的引用),实例方法就无法运行。无法为这种情况定义合理的行为。
实例方法可以访问实例字段。如果没有this
引用,这些字段将无法访问。
如果您不想存储目标,请将实例方法包装在静态函数中:
MyCustomClass obj = new MyCustomClass();
Action withTarget = obj.SomeMethod; //stores target
static void MyCustomInvoker(MyCustomClass obj) {
obj.SomeMethod();
}
Action<MyCustomClass> noTarget = MyCustomInvoker; //does not store any target
于 2013-10-05T09:16:26.703 回答