更新:2007 年 11 月
错误消息
++ 或 -- 运算符的参数类型必须是包含类型运算符重载的方法声明必须遵循一定的准则。 ++ 和 -- 运算符要求参数的类型与重载该运算符的类型相同。
示例
下面的示例生成 CS0559:
复制代码 | |
---|---|
// CS0559.cs // compile with: /target:library public class iii { public static implicit operator int(iii x) { return 0; } public static implicit operator iii(int x) { return null; } public static int operator ++(int aa) // CS0559 // try the following line instead // public static iii operator ++(iii aa) { return (iii)0; } } |
下面的示例生成 CS0559。
复制代码 | |
---|---|
// CS0559_b.cs // compile with: /target:library public struct S { public static S operator ++(S? s) { return new S(); } // CS0559 public static S operator --(S? s) { return new S(); } // CS0559 } public struct T { // OK public static T operator --(T t) { return new T(); } public static T operator ++(T t) { return new T(); } public static T? operator --(T? t) { return new T(); } public static T? operator ++(T? t) { return new T(); } } |