【发布时间】:2013-06-21 02:42:48
【问题描述】:
我正在使用 IComparable 和 IComparer
在 Student 类中:[IComparable]
public int CompareTo(Student studentToCompare)
{
if (this.Number < studentToCompare.Number)
return 1;
else if (this.Number > studentToCompare.Number)
return -1;
else
return 0;
}
在 StudentCompareName 类中:[IComparer]
public int Compare(Student x, Student y)
{
return string.Compare(x.Name, y.Name);
}
使用 Compare(Student x, Student y) 我正在按姓名对学生列表进行排序。
如果我不在 Student-class 中使用 CompareTo(),就会出错。
我想知道为什么我需要在我的主(学生)类中有一个 CompareTo(),它有什么作用?为什么我需要先比较 Student 类中的学号,然后才允许我在 StudentCompareName 类中对名称进行排序?
【问题讨论】:
-
你能更彻底地定义“我遇到错误”吗?
标签: c# icomparable