为什么这个要用泛型约束来实现接口

我在学习C#时 参考果壳中的C# 5.0 一书
书中谈到了泛化约束的问题时 说道 “基类约束或接口约束规定类型参数必须是某个类的子类或实现特定类或接口。” 然后讲了一个例子:
这个是框架中定义的泛化接口IComparable<T>

public interface IComparable<T>
{
    int CompareTo(T other); 
}

如果other 比 this 大compareTo方法就会返回正值。

static T Max<T> (T a,T b) where T : Icomparable<T>
{
    return a.CompareTo(b) > 0? a:b;
}

int z = Max(5,10);  // 10
string last  = Max("ant","zoo"); //zoo

由于我不是很理解上面说道的
“基类约束或接口约束规定类型参数必须是某个类的子类或实现特定类或接口。”
所以不是很懂这个例子想表达什么,为什么不可以直接实现这个接口,一定要用接口约束呢?
我试过直接实现接口,但是IDE会报错,不是很懂,还是请诸位来帮一手吧。

查看回复

相关问答