C#简单的泛型接口问题.. 高手们帮我来看下..。

来源:百度知道 编辑:UC知道 时间:2024/06/24 00:02:15
代码如下:
/// <summary>
/// 姓名比较器;<定义一个泛型接口>
/// </summary>
class Student : IComparable<Student>
{
private string name;
/// <summary>
/// 姓名
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}

private int age;
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get { return age; }
set { age = value; }
}

private string sex;
/// <summary>
/// 性别
/// </summary>
public string Sex
{
get { return sex; }
set { sex = value; }
}

/// <summary>
///

IComparable<Student>

你必须继承的方法是
public int CompareTo(Student other) {
return this.Name.CompareTo(other.Name);
}

你现有的这个方法应该改成
public static int Compare(Student x, Student y) {
return x.CompareTo(y);
}
第二个方法为什么要改,原因是。你要解决的是x和y的问题,为什么要先创建一个Student z的实例?如果照原有的方法调用,那么应该是
Student x, y, z;
......
z.CompareTo(x, y);
z其实是多余的。只需要x.CompareTo(y)或者Student.Compare(x, y)

public int Compare(Student x, Student y) //这里提示错误.
{
return (x.Name.CompareTo(y.Name));
}

改成:
public int CompareTo(Student stu)
{
return (Name.CompareTo(stu.Name));
}

一句话就概括了:
假如一个类继承某个接口,那么这个类就要实现该接口的所有方法

我说的可是点睛之笔,楼主放分吧。