我記得關於一個接口的一些信息,如果它被實現的話,它會自動處理所有的比較運算符,所以沒有必要單獨實現每一個。有人記得這樣的事嗎?比較運算符重載一個尺寸適合所有
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