c# – 从另一个类调用Delegate方法

前端之家收集整理的这篇文章主要介绍了c# – 从另一个类调用Delegate方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法弄清楚如何在C#中跨类编写委托方法调用.我来自Objective-C的世界,这可能会让我感到困惑.在Objective-C中,我可以在子类中分配一个委托对象,作为父类(即,childViewcontroller.delegate = self;).然后我可以使用以下方法在委托类中触发方法
if([delegate respondsToSelector:@selector(methodName:)]) {
   [delegate methodName:parametersgohere];
}

但是,我无法弄清楚如何在C#中执行此操作.我已经阅读了一些关于C#代理的一般信息(例如,here),但我仍然被卡住了.

有没有例子可以解释这个?

这是我的场景:
我有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!

Caller实例将委托传递给Callee实例的DoSomething方法,该方法调用指向的方法,该方法是Caller实例的Callback方法.

原文链接:https://www.f2er.com/csharp/243631.html

猜你在找的C#相关文章