将方法调用委托给另一个方法

时间:2019-09-02 12:17:53

标签: c# methods

我不确定我要找的东西是否还可能,但是我想知道是否有一种方法可以在调用某个方法时将其委托给另一个方法。假设我在类ReceiverMiddleMan中有一个带有公共方法OnReceived(string param)的声明对象Receiver。在Receiver上调用此方法时,我想以某种方式将此方法的参数传递给方法OnReceivedInMiddleMan,而不必采用代码中所示的方式。为什么?因为我想知道是否可以直接获取Receiver.OnReceived中的数据,而无需例如继承自Receiver来访问该方法。在这里用作示例的Receiver类实际上是一个第三方库,我无法使用事件等进行修改。我唯一的访问权是公共方法。

class Receiver
{
    public void OnReceived(string param)
    {
        //do something
    }
}

class ReceiverMiddleMan
{
    Receiver receiver = new Receiver();
    Listen(receiver.OnReceived);

    public void Listen(Method method)
    {
        OnReceivedInMiddleMan(method.param);
    }

    public void OnReceivedInMiddleMan(string param)
    {
        //do something
    }
}

0 个答案:

没有答案