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(".....");
}
}
}
创建一个 PersonCmparerName 的静态实例。
严格的写法应该是:
public static readonly IComparer Default = new PersonComparerName();//这一行看不懂
我猜测他想实现 PersonComparerName 的单例模式。
应该不是想单例,只是作者想在linq.Distinct(PersonComparerName.Default)这种写法。而已。