我记得关于一个接口的一些信息,如果它被实现的话,它会自动处理所有的比较运算符,所以没有必要单独实现每一个。有人记得这样的事吗?比较运算符重载一个尺寸适合所有
0
A
回答
1
恕我直言,没有任何开箱即用的.NET可以做到这一点。 C#中的运算符被定义为静态方法,因此它们不能像IEnumerable
(通过扩展方法)那样共享。另外,Equals
和GetHashCode
方法必须明确重载(当您提供==
和!=
运算符时),则不能使用扩展方法或任何其他语言机制在许多未分析的类中共享它们。
关闭你可能要做的事情是创建自定义基类,它将实现IComparable<>
并覆盖Equals
和GetHashCode
,并定义一组自定义运算符。
public class Base {
public static bool operator >(Base l, Base r) {
return true;
}
public static bool operator <(Base l, Base r) {
return false;
}
}
public class Derived : Base { }
public class Derived2 : Base { }
,然后使用:
Derived a = new Derived(), b = new Derived();
bool g = (a > b);
Derived2 a2 = new Derived2();
bool g2 = (a2 > b);
但只会工作,为密切相关的种...
+0
感谢,我忘了最后一个想法。 – MotKohn
相关问题
- 1. 运算符重载“运算符T *()”产生比较运算符?
- 2. 在PHP中比较运算符重载
- 3. 为MyString类重载比较运算符
- 4. Python的比较运算符重载
- 5. 适合所有屏幕尺寸
- 6. PhoneGap应用适合所有尺寸
- 7. 该代码是否适用于重载比较运算符?
- 8. 在c + +运算符重载(比较运算符)
- 9. 多个比较运算符
- 10. 尺寸图像以适合WebView尺寸
- 11. 如何为一组配对重载比较运算符?
- 12. 比较运算符
- 13. 在jQuery中比较尺寸
- 14. 比较不同尺寸
- 15. 用文字包装所有文字并将尺寸适合孩子的尺寸?
- 16. 逻辑比较==运算符过载
- 17. 根据尺寸比较两个文件
- 18. 从重载比较运算符的int派生类访问原始int比较
- 19. 将给定尺寸与所需尺寸进行比较并显示不匹配
- 20. 比较位运算符
- 21. 逻辑比较运算符
- 22. PowerShell比较运算符
- 23. SQL比较运算符
- 24. Ruby比较运算符? ==与===
- 25. 为什么比较运算符不能自动重载IComparable?
- 26. 模拟类的重载比较运算符
- 27. 重载比较运算符来处理C++中的STL排序
- 28. C++中大型复杂结构的比较(运算符重载)
- 29. 如何使iPhone 4应用适合所有iOS尺寸?
- 30. Android应用程序响应(适合所有屏幕尺寸)
见http://stackoverflow.com/a/43721867/5976576 – MotKohn