Предположим, у меня есть класс
Class Apple<T> where T: IComparable<int>{}
Теперь, создавая объект для Apple, я сделаю это как
Apple<int> obj = new Apple<int>();
Приведенный выше код будет работать.
Если я заменю тот же код на любой другой универсальный интерфейс, например IComparer<>
, IEnumerable<>
и т. Д., Создание объектов, как указано выше, не будет работать, и мы должны объявить его как
Apple<IEnumerable<int>> obj = new Apple<IEnumerable<int>>();
Почему это так? Почему способ, который я объявил для IComparable<>
, работает только для него, а не для любого другого интерфейса?