假设我有一堂课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<>方式只适用于它而不适用于任何其他接口?
1 回答
慕森王
TA贡献1777条经验 获得超3个赞
没有什么特别的IComparable<T>
,但关于T
它本身,它 - 在这种情况下int
- 也实现了IComparable<int>
。不过int
肯定不会执行IEnumerable<int>
。
或者换句话说:您当然可以将eachint
与另一个进行比较int
。但是你不能迭代一个int
.
- 1 回答
- 0 关注
- 67 浏览
添加回答
举报
0/150
提交
取消