Содержание
- 2. Определение интерфейса Интерфейс – это набор семантически связанных абстрактных методов, свойств и событий. Класс, реализующий интерфейс,
- 3. Пример интерфейса // Этот интерфейс определяет возможности // работы с углами геометрической фигуры public interface IPointy
- 4. Пример интерфейса // Любой класс может реализовывать любое количество интерфейсов, но он должен // производиться только
- 5. Пример интерфейса public class Triangle : Shape, IPointy { public Triangle(){} public Triangle(string name) : base(name)
- 6. Получение ссылки на интерфейс // Получаем ссылку на интерфейс IPointy, // используя явное приведение типов Hexagon
- 7. Получение ссылки на интерфейс с помощью оператора as // Еще один способ получить ссылку на интерфейс
- 8. Проверка существования интерфейса с помощью оператора is // Есть ли у этой фигуры углы? Triangle t
- 9. Пример использования is // Давайте выясним (во время выполнения), у каких // геометрических фигур есть углы
- 10. Интерфейсы как параметры // Интерфейс для отображения фигур в трех измерениях public interface IDraw3D { void
- 11. Интерфейсы как параметры // Создаем несколько геометрических фигур. Если они поддерживают // отображение в трех измерениях,
- 12. Разрешение конфликтов имен public interface IDraw3D { void Draw3D(); } // А что будет, если мы
- 13. Разрешение конфликтов имен // Вызываем Line.Draw() Line myLine = new Line(); myLine.Draw() // Вызываем Line.Draw() еще
- 14. Явная реализация интерфейса // При помощи явной реализации методов интерфейса мы можем // определить разные варианты
- 15. Явная реализация интерфейса // Конфликтов имен не будет! public class SuperImage : IDraw, IDrawToPrinter, IDraw3D {
- 16. Создание иерархий интерфейсов // Базовый интерфейс interface IDraw { void Draw(); } interface IDraw2 : IDraw
- 17. Создание иерархий интерфейсов // Этот класс будет поддерживать IDraw, IDraw2 и IDraw3 public class SuperImage :
- 18. Создание иерархий интерфейсов // Проверяем наши интерфейсы public class TheApp { public static int Main(string[] args)
- 19. Наследование от нескольких базовых интерфейсов interface IBasicCar { void Drive(); } interface IUnderwaterCar { void Dive();
- 20. Наследование от нескольких базовых интерфейсов JBCar j = new JBCar(); if(j is IJamesBondCar) { ((IJamesBondCar)j).Drive(); ((IJamesBondCar)j).TurboBoost();
- 21. Использование встроенных интерфейсов Интрефесы IEnumerate, IEnumerate
- 22. Описание класса Car // Cars — набор объектов класса Car public class Cars { private Car[]
- 23. Применить foreach? // Кажется очень заманчивым public class CarDriver { public static void Main() { Cars
- 24. Interface IEnumerable // Необходимо, чтобы класс реализовывал // интерфейс IEnumerable public class Cars : IEnumerable {
- 25. Интерфейс IEnumerator public interface IEnumerator { // Передвинуть внутренний указатель на одну позицию bool MoveNext(); //
- 26. Модификация класса Cars // Набор объектов Car с реализованным нумератором! public class Cars: IEnumerator, IEnumerable {
- 27. Применить foreach! public class CarDriver { public static void Main() { Cars carLot = new Cars();
- 28. Дополнительные способы обращения к объектам Car // Обращаемся к объектам Car через IEnumerator IEnumerator itfEnum; itfEnum
- 29. Создание клонируемых объектов Интерфейс ICloneable
- 30. Поверхностное копирование (shallow copy) // Наш класс — это просто точка с координатами на плоскости public
- 31. Глубокое копирование (deep copy) // Реализуем в классе Point поддержку глубокого копирования // через интерфейс ICloneable
- 32. Глубокое копирование (deep copy) // Обратите внимание, что Clone() возвращает // "объект вообще". Чтобы получить из
- 33. Сравнивание объектов Интерфейс IComparable
- 34. Интерфейс IComparable Car[] myAutos = new Car[5]; myAutos[0] = new Car(123, "Rusty"); myAutos[1] = new Car(6,
- 35. Реализация интерфейса IComparable // Такая реализация метода CompareTo() позволит сортировать // объекты автомобилей по значению идентификатора
- 36. Применяем интерфейс IComparable // Применяем реализованный нами интерфейс IComparable на практике public class CarApp { public
- 37. Сортировка по нескольким идентификаторам Интерфейс IComparer в System.Collection // Стандартный способ сравнения двух объектов interface IComparer
- 38. Создание вспомогательного класса // Этот вспомогательный класс нужен для // сортировки объектов Car по PetName using
- 39. Сортировка по указанному полю // Now sort by pet name. Array.Sort(myAutos, new SortByPetName()); Console.WriteLine("\nOrdering by pet
- 40. Можно включить статическое свойство public class Car : IComparable { // As a nested class! private
- 41. Пространство имен System.Collections Интерфейсы и классы
- 42. Интерфейсы
- 43. Классы
- 44. Применение ArrayList // Нам больше не нужно реализовывать IEnumerator — все уже сделано за нас в
- 46. Скачать презентацию