用泛型实现参数化类型(泛型的深化与提高)

时间:2021-01-15 19:26:14

1以泛型方式将一个给定的值和默认值进行比较
static int CompareToBefault(T value) where t :ICompare
{
reurn value.CompareTo(default(T))
}
console.write(CompareToBefault(“x”))//字符串默认是null,任何字符串都比null大,所以返回的是1
console.write(CompareToBefault(10))//int类型默认值是0,所以返回1

 2泛型比较接口
   共有4个主要的泛型接口可用于比较.IComparer<T>和IComparable<T>用于排序(判断某个知识小于  等于  还是大于另一个值),而IRqualityComparer<T>和IEquatable<T>通过某种标准来比较两个项的想等性,或查找某个项的散列(通过与相等性概念匹配的方式)
   如果换一种方式划分4个接口,IComparer<T>和IequalityComparer<T>用于那些能够比较两个不同值的类型,而IComparable<T>和IEquatable<T>的实例则用于他们本身和其他值之间的比较

代码清单3-6表示一对值的泛型类
public sealed class Pair