我記得關於一個接口的一些信息,如果它被實現的話,它會自動處理所有的比較運算符,所以沒有必要單獨實現每一個。有人記得這樣的事嗎?比較運算符重載一個尺寸適合所有
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. 重載比較運算符
- 2. 運算符重載「運算符T *()」產生比較運算符?
- 3. 尺寸比較
- 4. 三元比較運算符重載
- 5. 重載比較運算符== C++
- 6. Python的比較運算符重載
- 7. 重載堆棧的比較運算符
- 8. 爲MyString類重載比較運算符
- 9. 在PHP中比較運算符重載
- 10. 在C++中重載比較運算符
- 11. 適合所有屏幕尺寸
- 12. PhoneGap應用適合所有尺寸
- 13. 該代碼是否適用於重載比較運算符?
- 14. 在c + +運算符重載(比較運算符)
- 15. 組合比較運算符(<=>)和空合併運算符(??)組合左右比較運算符
- 16. 在較小的屏幕尺寸下適合尺寸的內容
- 17. 鏈接比較(重載不可重載的「和」運算符)
- 18. 多個比較運算符
- 19. 尺寸圖像以適合WebView尺寸
- 20. 如何爲一組配對重載比較運算符?
- 21. 比較運算符
- 22. 比較運算符
- 23. 比較運算符
- 24. 比較不同尺寸
- 25. 比較不同尺寸
- 26. 在jQuery中比較尺寸
- 27. 用文字包裝所有文字並將尺寸適合孩子的尺寸?
- 28. 邏輯比較==運算符過載
- 29. 根據尺寸比較兩個文件
- 30. 適用於所有屏幕尺寸的Android圖形尺寸
見http://stackoverflow.com/a/43721867/5976576 – MotKohn