Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Разрешение конфликтов имен
Разрешение конфликтов имен
Явная реализаций интерфейса может оказаться очень полезной тогда, когда реализуются несколько интерфейсов, содержащих идентичные члены, Предположим. например, что вы создали класс, реализующий следующие новые типы интерфейса.
// Три интерфейса, определяющие методы с одинаковыми именами.
public interface IDraw {
void Draw();
}
public interface IDrawToPrinter {
void Draw();
}
Если вы захотите построить класс с именем SuperImage (суперизображение), поддерживающий базовую визуализацию (IDraw), 3D-визуализацию (IDraw3D), а также сервис печати (IDrawToPrinter), то единственным способом обеспечить уникальную реализацию для каждого метода будет использование явной реализации интерфейса.
// Не выводится из Shape, но вводит конфликт имен.
public class SuperImage: IDraw, IDrawToPrinter, IDraw3D {
void IDraw.Draw() {/* Логика базовой визуализации. */}
void IDrawToPrinter.Draw() {/* Логика печати. */}
void IDraw3D.Draw() {/* Логика 3D-визуализации. */}
}
Исходный код. Проект CustomInterface размешен в подкаталоге, соответствующем главе 7.
- Глава 3 Создание и применение шаблонов
- Разрешение конфликтов шаблонов
- Ширина и глубина ассортимента
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Имена индексов ограничений
- Пример применения метода «пять почему»
- Имена объектов длиной 68 символов
- Ценовая сегментация ассортимента
- 5.12.2 Открытие поименованного канала
- Сохранение рабочей книги с именем, представляющим собой текущую дату
- Правила именования файлов
- Множественные интерфейсы и имена методов