c# – 从另一个类调用Delegate方法
发布时间:2020-12-15 08:27:19 所属栏目:百科 来源:网络整理
导读:我无法弄清楚如何在C#中跨类编写委托方法调用.我来自Objective-C的世界,这可能会让我感到困惑.在Objective-C中,我可以在子类中分配一个委托对象,作为父类(即,childViewcontroller.delegate = self;).然后我可以使用以下方法在委托类中触发方法: if([delegat
我无法弄清楚如何在C#中跨类编写委托方法调用.我来自Objective-C的世界,这可能会让我感到困惑.在Objective-C中,我可以在子类中分配一个委托对象,作为父类(即,childViewcontroller.delegate = self;).然后我可以使用以下方法在委托类中触发方法:
if([delegate respondsToSelector:@selector(methodName:)]) { [delegate methodName:parametersgohere]; } 但是,我无法弄清楚如何在C#中执行此操作.我已经阅读了一些关于C#代理的一般信息(例如,here),但我仍然被卡住了. 有没有例子可以解释这个? 这是我的场景: 任何“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! Caller实例将委托传递给Callee实例的DoSomething方法,该方法又调用指向的方法,该方法是Caller实例的Callback方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |