MdrResponseInterpreter

MdrResponseInterpreter

在下面的代码中,我必须声明方法MdrResponseInterpreter static,否则我将遇到编译错误。

class.... {

    private StandardBuilder _mdrResponseBuilder =
      new StandardBuilder(MdrResponseInterpreter);

    public static bool MdrResponseInterpreter(DNMessageDeliverer builder,
                                              DNFieldSet message)
    {
        // .... work
    }

为什么?由于_mdrResponseBuilder不是静态的,我希望MdrResponseInterpreter应该能够访问this

最佳答案

因为字段初始值设定项无权访问this/实例成员。如果要访问实例成员,请将初始化移至构造函数。

规范说明:



尽管您的代码未明确引用this,但如果方法是实例成员,则委托(delegate)转换的方法组将隐式引用this

关于c# - 为什么委托(delegate)必须是静态的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9904465/

10-14 14:49