Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Типы, определяющие сортировку, и пользовательские свойства

Типы, определяющие сортировку, и пользовательские свойства

Следует отметить, что с помощью пользовательских статических свойств вы можете помочь пользователю объекта отсортировать типы Car по заданному элементу данных. Предположим, что в класс Car добавлено статическое свойство SortByPetName(), доступное только для чтения и возвращающее экземпляр объекта, реализующего интерфейс IComparer (в данном случае это PetNameComparer).

// Здесь обеспечивается поддержка пользовательского свойства для
// возвращения "правильного" интерфейса IComparer.
public class Car: IComparable {
 …
 // Свойство, возвращающее компаратор SortByPetName.
 public static IComparer SortByPetName { get { return (IComparer)new PetNameComparer(); } }
}

В программном коде пользователя объекта теперь можно выполнить сортировку по названию, используя ассоциированное свойство без какого бы то ни было "упоминания" специального типа класса PetNameComparer:

// Сортировка по имени становится немного проще.

Array.Sort(myAutos, Car.SortByPetName);

Исходный код. Проект ComparableCar размещен в подкаталоге, соответствующем главе 7.

Теперь вы должны понимать не только то, как определяются и реализуются типы интерфейса, но и то, в чем их польза. Будьте уверены, интерфейсы можно обнаружить в любом из главных пространств имен .NET и в завершение этой главы мы рассмотрим примеры интерфейсов (и базовых классов) из пространства имен System.Collections.

Оглавление книги


Генерация: 1.413. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз