我得到了这条消息,因为我写了一个实现了Icomparable的类:
class Person: IComparable<Person>
{
public int age{get;set;}
public String name { get; set; }
int IComparable.CompareTo( Person p )
{
if (this.age > p.age)
return 1;
else if (this.age == p.age)
return 0;
else
return -1;
}
}
无法弄清楚其中有什么问题,任何人都有什么好主意吗?
P.S。,我把param变成了对象,但仍然没有工作
答案 0 :(得分:4)
方法声明不使用泛型参数。它必须是
int IComparable<Person>.CompareTo(Person p)
如果没有泛型参数,编译器会认为您正在尝试实现非泛型接口IComparable
。
答案 1 :(得分:3)
class Person : IComparable<Person>
{
public int age { get; set; }
public String name { get; set; }
public int CompareTo(Person other)
{
if (age > other.age)
{ return 1; }
if (age == other.age)
{ return 0; }
return -1;
}
}
答案 2 :(得分:0)
这是您的实现应该是什么样子。
public int CompareTo(object obj)
{
Person p = obj as Person;
if (this.age > p.age)
return 1;
else if (this.age == p.age)
return 0;
else
return -1;
}