sri*_*rni 0 .net c# generics generic-constraints
假设我有一堂课
Class Apple<T> where T: IComparable<int>{}
Run Code Online (Sandbox Code Playgroud)
现在,在为Apple创建对象时,我会像
Apple<int> obj = new Apple<int>();
Run Code Online (Sandbox Code Playgroud)
上面的代码将起作用。
如果我将相同的代码替换为其他通用接口(例如)IComparer<>,IEnumerable<>则上述对象创建将无法正常工作,我们必须像这样声明它
Apple<IEnumerable<int>> obj = new Apple<IEnumerable<int>>();
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?为什么我声明的IComparable<>方法仅适用于它,而不适用于其他任何接口?
本身也没有什么特别的IComparable<T>,但也可以实现。但是肯定不会执行。TintIComparable<int>intIEnumerable<int>
或者换句话说:你当然可以比较每一个int与另一个int。然而,你不容重复的int。
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |