VS 不允许我调用我的扩展方法
VS does not allow me to invoke my extension method
出于任何原因,VS 允许我使用我的扩展方法调用的长写。但是编译器拒绝更短的形式:
public 静态 class OperationExtender {
public static void MyMethod(Operation ope, int value) {
...
}
}
我可以这样调用它:
OperationExtender.MyMethod(anOperation, 0);
但是如果我输入:
anOperation.OperationExtender(0);
VS 生成这个常见的编译错误:
'OperationExtender.MyMethod(Operation, int)'
does not contain a definition for
'MyMethod' and no extension method 'MyMethod' accepting a first argument of type 'Operation' could be found (are you missing a using directive or an assembly reference?)
如果第一篇被采纳,我想应该不会是usung/NS/assembly问题....
因为它不是扩展方法。您忘记了第一个参数的 this
关键字(类型为 "extended"):
public static void MyMethod(this Operation ope, int value) {
//...
}
出于任何原因,VS 允许我使用我的扩展方法调用的长写。但是编译器拒绝更短的形式:
public 静态 class OperationExtender {
public static void MyMethod(Operation ope, int value) {
...
}
}
我可以这样调用它:
OperationExtender.MyMethod(anOperation, 0);
但是如果我输入:
anOperation.OperationExtender(0);
VS 生成这个常见的编译错误:
'OperationExtender.MyMethod(Operation, int)'
does not contain a definition for
'MyMethod' and no extension method 'MyMethod' accepting a first argument of type 'Operation' could be found (are you missing a using directive or an assembly reference?)
如果第一篇被采纳,我想应该不会是usung/NS/assembly问题....
因为它不是扩展方法。您忘记了第一个参数的 this
关键字(类型为 "extended"):
public static void MyMethod(this Operation ope, int value) {
//...
}