【发布时间】:2019-03-07 11:22:24
【问题描述】:
假设我有一堂课
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<> 声明的方式只适用于它而不适用于任何其他接口?
【问题讨论】:
标签: c# .net generics generic-constraints