这是我在这里的第一个问题,所以当我做错事时,请这么善良,只是说出来。所以。我在教科书中找到了这个。它是一个对象数组排序程序的类。这是我需要的东西,但它在书中解释得很糟糕,我无法巧妙地解决它。那么有人可能会为我详细解释一下吗?这对我有帮助。
class Person : IComparable
{
private string name;
public Person()
{
name = "EMPTY";
}
public Person (string nm)
{
name = nm;
}
public string NAME
{
get
{
return name;
}
}
public int CompareTo( object oneObject)
{
Person comparePerson = (Person)oneObject;
return (name.CompareTo(comparePerson.name));
}
public override string ToString()
{
return "Name of the Person: " + name;
}}
答案 0 :(得分:0)
此代码是实现IComparable
接口的示例。如果希望在数组上使用Sort()
方法,则可以使用它,其中实例不是值(类,结构)。
这部分代码描述了计算机的排序原则,它应该如何对Person实例的数组进行排序:
1. public int CompareTo( object oneObject)
2. {
3. Person comparePerson = (Person)oneObject;
4. return (name.CompareTo(comparePerson.name));
5. }
第3行Cast参数(将与当前实例进行比较)到Person类。这是不安全的,因为如果oneObject
不是,那么你可以获得InvalidCastException
人类。
在第4行比较当前实例的Name
与oneObject
参数的名称
Properti Name
是字符串。 String具有IComparable
接口的实现,您可以使用它。
当你在Array上调用Sort()方法时,它会一对一地比较元素(使用CopareTo(arg)
),并根据结果进行排列。