日期:2014-05-19  浏览次数:21097 次

新手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的实例.