C# 泛型

在C#早期的集合实现时,任何对象都会转成Object对象,值类型还要装箱取消装箱,在从集合获得项时,要重新转化为以前的类型。有两个问题:类型需要转化,装箱和取消装箱有开销;添加错误的类型时无法检查,
这样转化类型就会出错。

泛型约束是where T : class 时 ,类型参数不能使用 等号和不等号,即使是重载的。因为编译器认为这里的T是引用类型,引用类型的等号和不等号比较引用。要正确地用等号和不等号比较两个泛型类中的引用类型,要加上IComparable 参数约束。

IComparable 的实现不是分别实现大于 等于 小于 多个方法,是实现一个返回整数的比较函数。
小于大于等于0 分别是 小于大于等于比较的对象。

你可能感兴趣的:(C# 泛型)