我创建了一个类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‘不实现接口成员MeansOfTransport.CarComparer MeansOfTransport.Car).
有什么问题吗?
此外,没有类型定义(Car),我不允许使用IComparer。为什么?
发布于 2012-02-21 17:31:29
你有
int IComparer<Car>.Comparer(Car obj1, Car obj2)你可能是说
int IComparer<Car>.Compare(Car obj1, Car obj2)发布于 2012-02-21 17:34:49
可能出现的问题:
您需要实现一个Comparer
public,所以您的方法也应该是public。目前,您的方法没有访问修饰符,因此默认为internal.。
https://stackoverflow.com/questions/9382169
复制相似问题