C# の詳細については、Jon Skeetが操作のオーバーロードIEquatable<>
をオーバーライドEquals()
するために使用しています。
public sealed class Pair<T1, T2> : IEquatable<Pair<T1, T2>>
{
public bool Equals(Pair<T1, T2> other)
{
//...
}
}
彼は、「不要な実行時のチェックを回避する、厳密に型指定された API を提供するため」にこれを行っていると述べています。
どの実行時間チェックが回避されますか? さらに重要なことは、インターフェイスを実装すると、厳密に型指定された API をどのように実現できるのでしょうか?
本の文脈で何かを見逃したかもしれません。インターフェイスは、ポリモーフィズムによってコードを再利用できると考えていました。また、具象型ではなく抽象化へのプログラミングに適していることも理解しています。それが私が知っているすべてです。