C#运算符重载==
发布时间:2020-12-15 23:47:54 所属栏目:百科 来源:网络整理
导读:我试图重载==运算符,但我有以下错误: Overloadable unary operator expected 这是我的代码 public bool operator == (MyClass nm1) { return true; } public bool operator != (MyClass m2) { return true; } 我跟着msdn note但仍然得到同样的错误 解决方法
我试图重载==运算符,但我有以下错误:
这是我的代码 public bool operator == (MyClass nm1) { return true; } public bool operator != (MyClass m2) { return true; } 我跟着msdn note但仍然得到同样的错误 解决方法
当你重载operator ==时,你应该在一个静态方法中执行它,该方法将两个实例作为参数:
public static bool operator == (MyClass leftSide,MyClass rightSide) { return true; } public static bool operator != (MyClass leftSide,MyClass rightSide) { return !(leftSide == rightSide); } 静态上下文使得运算符的代码感觉更“对称”,因为执行比较的代码不属于左实例或右实例. 另外,静态使得无法“虚拟化”运算符(你仍然可以通过调用虚函数在实现中执行它,但是你必须明确地执行它). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |