在下面的代码中,我必须声明方法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/