次のクラスがあるとしましょう:
public sealed class ScaleValue :
IComparable, IComparable<ScaleValue>, IEquatable<ScaleValue>
{
public double Value
{ get; set;}
public string Definition
{ get; set;}
// interface methods
...
}
クラスを a に匹敵するものにしたい場合は、そのようdoubleに含めIComparable<double>て実装する必要がありますか、それとも別の方法で行う必要がありますか?
そして、クラスを double に匹敵するようにしたい場合は、 ?double.CompareToと同じ結果が得られるはずです。ScaleValue.CompareTo
そしてどうEqualsですか?
私は自分の設計で責任を間違っていると思います。私の最善の選択肢は、ContainsValue(double Value)メソッドを使用して Scale クラスを作成することだと思います。このようにして、価値を調べて、必要な場所に責任を持たせることができます。