System.IComparable<T>时已经接触了泛型接口,有几个要注意的内容:
1. 泛型接口为不变量,
例如 IWrapper<T>, 不能将IWrapper<object>对象赋值给IWrapper<string>,即使string派生与object类型。
2. 协变接口,
使用interface IRetrieveWrapper<out T>时,由于作为方法返回类型指定的类型参数,上述功能就正常的。
3. 逆变接口
使用interface ICompared<int T>时,在接口方法中能使用对象,上述功能也是正常的。