我创建了一个类 Car,它派生自抽象类 TransportMeans并实现了一个接口 PrivateMeans,它只包含一个属性:
interface PrivateMean
{
int capacity { set; get; }
}
我想实现一个类,它根据属性容量对Car 类的对象进行排序。我想通过使用接口 IComparer来做到这一点。
但是,当我如下声明一个附加类 CarComparer时:
public class CarComparer : IComparer<Car>
{
int IComparer<Car>.Comparer(Car obj1, Car obj2)
{
PrivateMean t1 = (PrivateMean)obj1;
PrivateMean t2 = (PrivateMean)obj2;
if (t1 != null && t2 != null)
{
if (t1.capacity >= t2.capacity)
return 1;
else return -1;
}
else
throw new ArgumentException("Some Parameter is not a Car!");
}
}
我收到错误:
错误 1“MeansOfTransport.CarComparer”未实现接口成员“System.Collections.Generic.IComparer.Compare(MeansOfTransport.Car, MeansOfTransport.Car)”。
问题是什么?
此外,我不允许在没有类型定义(汽车)的情况下使用IComparer 。为什么?