我无法弄清楚如何在 C# 中对跨类的委托方法调用进行编程。我来自 Objective-C 的世界,这可能会让我感到困惑。在 Objective-C 中,我可以在子类中分配一个委托对象作为父类(即,childViewcontroller.delegate = self;
)。然后我可以使用以下方法触发委托类中的方法:
if([delegate respondsToSelector:@selector(methodName:)]) {
[delegate methodName:parametersgohere];
}
但是,我不知道如何在 C# 中执行此操作。我读过一些关于 C# 委托的一般知识(例如,here http://www.dotnetscraps.com/dotnetscraps/post/explaining-delegates-in-c.aspx),但我还是卡住了。
有没有例子可以解释这一点?
这是我的完整场景:我有 classA 实例化 classB 的实例。 ClassB 触发一个方法(调用 Web 服务),根据响应,我想触发 ClassA 中的一个方法。
有任何“Hello World”类型的教程可以解释这方面的基础知识吗?
委托是指向方法的对象,无论是静态方法还是实例方法。因此,对于您的示例,您只需使用事件模型:
class Caller {
public void Call() {
new Callee().DoSomething(this.Callback); // Pass in a delegate of this instance
}
public void Callback() {
Console.WriteLine("Callback called!");
}
}
class Callee {
public void DoSomething(Action callback) {
// Do stuff
callback(); // Call the callback
}
}
...
new Caller().Call(); // Callback called!
The Caller
实例将委托传递给Callee
实例的DoSomething
方法,该方法又调用所指向的方法,即Callback
的方法Caller
实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)