新手C#入门不解语句问题
public class PersonComparerName : IComparer
{
public static IComparer Default = new PersonComparerName();
public int Compare(object x, object y)
{
if (x is Person && y is Person)
{
return Comparer.Default.Compare(
((Person)x).Name, ((Person)y).Name);
}
else
{
throw new ArgumentException(
"One or both objects to compare are not Person objects. ");
}
}
}
}
C#入门经典解释这个类有一个公共的静态字段,很容易使用:
public static IComparer Default = new PersonComparerName();
它可以使用PersonComparerName.Default获取一个实例
IComparer接口类型?Default是对象为什么会是字段?
------解决方案--------------------IComparer是接口,Default是个对象类型的公共字段
public static IComparer Default = new PersonComparerName();
这里定义了一个静态的公共字段Default, 该字段为一个继承于IComparer接口的类PersonComparerName的实例.