实现IComparable接口的CompareTo方法

解决方案 »

  1.   

    CompareTo里面怎么写?还是一个T类型的比较问题啊?!
      

  2.   

    这是C#泛型的局限。
    让你的T变成一个实现了IComparable接口的类型,然后就可以改为:
    return value.CompareTo(o.value);
    声明需要改成:
    class C<T> where T: IComparable
      

  3.   

    class C<T>
    {
    private T value;
    public C(T value) { this.value = value; }
    public int compareTo(C<T> o)
    {
    return value < o.value ? -1 : 1;//报错说“<”不能用于T类型
    }
    }
    --------------------------------------------
    程序有问题 T 包括值和引用类型
    value < o.value ? -1 : 1;
    你这样做 就是把它当成值类型做的
    你应该T派生值类型
      

  4.   

    compareTo方法写的有问题...如果你传入的是其它类型的范型该怎么比较? 
    比如
    C<string> s = new C<string>();
    s.comapreTo(new C<int>());