基本的に私は以下を持っています:
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable
{
...
}
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable<T>
{
...
}
問題は、制約が異なっていても、同じ署名を持つメンバーを持つことができないため、これを行うことができないことです。ただし、制約がIComparable
ORのいずれかであると述べる方法はありませんIComparable<T>
。ですから、1つを選んでそれを使う以外に、ここで何をすべきかわかりません. そして、どちらを選んだとしても、それらは別のものであり、互いに継承していないため、もう一方を失うことになります (これは理にかなっています)。
両方を使用して達成する方法があるという点で、ここで何かが欠けていますか、それともどちらかを選択する必要がありますか (おそらく汎用バージョン)?