я написал общий метод расширения, чтобы увидеть, если ключ находится в определенном диапазоне:Что определяет, могу ли я использовать операторы сравнения?
public static bool IsInRange(this Key key, Key lowerBoundKey, Key upperBoundKey)
{
return lowerBoundKey <= key && key <= upperBoundKey;
}
Это кажется достаточно простым, но предположу, что я хочу написать общий метод эквивалент, который будет работать с любым типом, который может использовать оператор <=
сравнения:
public static bool IsInRange(this T value, T lowerBound, T upperBound)
{
return lowerBound <= value && value <= upperBound;
}
Как применить where T : ISomethingIDontKnow
, так что я могу сделать это скомпилировать?
Не уверен, но если реализовать IComparable может быть достаточно – Paparazzi
', где T: IComparable' должно быть достаточно для этого, чтобы работать. – Nkosi