在C#深入中,Jon Skeet使用IEquatable<>
至
覆蓋
過載Equals()
操作。實現接口如何爲我們提供強類型化的API?
public sealed class Pair<T1, T2> : IEquatable<Pair<T1, T2>>
{
public bool Equals(Pair<T1, T2> other)
{
//...
}
}
他說,我們這樣做是「給一個強類型的API,它會避免不必要的執行時間檢查」。
哪些執行時間檢查被避免?更重要的是,如何實現一個接口來實現強類型化的API?
我可能錯過了本書的內容。我認爲接口讓我們通過多態來重用代碼。我也明白,它們很適合用抽象而不是具體的類型進行編程。這就是我所知道的。
它不*重寫*等於 - 重載*等於。 –