假設(shè)我有一堂課Class Apple<T> where T: IComparable<int>{}現(xiàn)在在為 Apple 創(chuàng)建一個對象時,我會這樣做Apple<int> obj = new Apple<int>();上面的代碼將起作用。如果我用任何其他通用接口替換相同的代碼,比如IComparer<>,IEnumerable<>等等。像上面這樣的對象創(chuàng)建將不起作用,我們必須像這樣聲明它Apple<IEnumerable<int>> obj = new Apple<IEnumerable<int>>();為什么會這樣?為什么我聲明的IComparable<>方式只適用于它而不適用于任何其他接口?
1 回答

慕森王
TA貢獻1777條經(jīng)驗 獲得超3個贊
沒有什么特別的IComparable<T>
,但關(guān)于T
它本身,它 - 在這種情況下int
- 也實現(xiàn)了IComparable<int>
。不過int
肯定不會執(zhí)行IEnumerable<int>
。
或者換句話說:您當然可以將eachint
與另一個進行比較int
。但是你不能迭代一個int
.
- 1 回答
- 0 關(guān)注
- 96 瀏覽
添加回答
舉報
0/150
提交
取消