В принципе, у меня есть следующее:
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
ИЛИ IComparable
. Поэтому я не знаю, что здесь делать, кроме как просто выбрать одно из них и следовать ему. И, независимо от того, какой из них я выберу, я потеряю от другого, потому что они раздельные и не наследуются друг от друга (что имеет смысл).
Я что-то упускаю, есть ли способ использовать оба варианта, или мне придется выбрать один (вероятно, общую версию)?