Я создал класс 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 без определения типа (Автомобиль).Зачем?