Содержание
- 2. ©Павловская Т.А. (СПбГУ ИТМО) Общие сведения об интерфейсе Интерфейс является «крайним случаем» абстрактного класса. В нем
- 3. ©Павловская Т.А. (СПбГУ ИТМО) Интерфейс может наследовать свойства нескольких интерфейсов, в этом случае предки перечисляются через
- 4. ©Павловская Т.А. (СПбГУ ИТМО) Интерфейсы или наследование классов? Если некий набор действий имеет смысл только для
- 5. ©Павловская Т.А. (СПбГУ ИТМО) Отличия интерфейса от абстрактного класса элементы интерфейса по умолчанию имеют спецификатор доступа
- 6. ©Павловская Т.А. (СПбГУ ИТМО) Реализация интерфейса В C# поддерживается одиночное наследование для классов и множественное —
- 7. ©Павловская Т.А. (СПбГУ ИТМО) Пример interface Iaction { void Draw(); int Attack( int a ); void
- 8. ©Павловская Т.А. (СПбГУ ИТМО) Обращение к реализованному методу через объект типа интерфейса Удобство этого способа проявляется
- 9. ©Павловская Т.А. (СПбГУ ИТМО) Второй способ реализации интерфейса Явное указание имени интерфейса перед реализуемым элементом. Спецификаторы
- 10. ©Павловская Т.А. (СПбГУ ИТМО) Пример Пусть класс Monster поддерживает два интерфейса: один для управления объектами, а
- 11. ©Павловская Т.А. (СПбГУ ИТМО) Операция is При работе с объектом через объект типа интерфейса бывает необходимо
- 12. ©Павловская Т.А. (СПбГУ ИТМО) Операция as Операция as выполняет преобразование к заданному типу, а если это
- 13. ©Павловская Т.А. (СПбГУ ИТМО) Интерфейсы и наследование Интерфейс может не иметь или иметь сколько угодно интерфейсов-предков,
- 14. ©Павловская Т.А. (СПбГУ ИТМО) Пример переопределения interface IBase { void F( int i ); } interface
- 15. ©Павловская Т.А. (СПбГУ ИТМО) Особенности реализации интерфейсов Класс, реализующий интерфейс, должен определять все его элементы, в
- 16. ©Павловская Т.А. (СПбГУ ИТМО) Стандартные интерфейсы .NET В библиотеке классов .NET определено множество стандартных интерфейсов, задающих
- 17. ©Павловская Т.А. (СПбГУ ИТМО) Сравнение объектов Интерфейс IComparable определен в пространстве имен System. Он содержит всего
- 18. ©Павловская Т.А. (СПбГУ ИТМО) Пример реализации интерфейса class Monster : IComparable { public int CompareTo( object
- 19. ©Павловская Т.А. (СПбГУ ИТМО) Параметризованные интерфейсы class Program { class Elem : IComparable { string data;
- 20. ©Павловская Т.А. (СПбГУ ИТМО) Клонирование объектов Клонирование — создание копии объекта. Копия объекта называется клоном.
- 21. ©Павловская Т.А. (СПбГУ ИТМО) Виды клонирования При присваивании одного объекта ссылочного типа другому копируется ссылка, а
- 22. Структуры
- 23. ©Павловская Т.А. (СПбГУ ИТМО) Определение структуры Структура — тип данных, аналогичный классу, отличия: является значимым, а
- 24. ©Павловская Т.А. (СПбГУ ИТМО) Синтаксис структуры [ атрибуты ] [ спецификаторы ] struct имя_структуры [ :
- 25. ©Павловская Т.А. (СПбГУ ИТМО) Пример структуры struct Complex { public double re, im; public Complex( double
- 26. ©Павловская Т.А. (СПбГУ ИТМО) Описание элементов структур поскольку структуры не могут участвовать в иерархиях, для их
- 27. Перечисления
- 28. ©Павловская Т.А. (СПбГУ ИТМО) Определение перечисления Перечисление – набор связанных констант: enum Menu { Read, Write,
- 29. ©Павловская Т.А. (СПбГУ ИТМО) Преимущества перечислений перед описанием именованных констант: связанные константы нагляднее; компилятор выполняет проверку
- 30. ©Павловская Т.А. (СПбГУ ИТМО) При использовании переменных перечисляемого типа в целочисленных выражениях и операциях присваивания требуется
- 31. Делегаты
- 32. ©Павловская Т.А. (СПбГУ ИТМО) Определение делегата Делегат — это вид класса, предназначенный для хранения ссылок на
- 33. ©Павловская Т.А. (СПбГУ ИТМО) Использование делегатов Делегаты применяются в основном для следующих целей: получения возможности определять
- 34. ©Павловская Т.А. (СПбГУ ИТМО) Обратный вызов (callback)
- 35. ©Павловская Т.А. (СПбГУ ИТМО) Передача делегата через список параметров namespace ConsoleApplication1 { public delegate double Fun(
- 36. ©Павловская Т.А. (СПбГУ ИТМО) Операции Делегаты можно сравнивать на равенство и неравенство. Два делегата равны, если
- 37. События
- 38. ©Павловская Т.А. (СПбГУ ИТМО) Определение события Событие — элемент класса, позволяющий ему посылать другим объектам (наблюдателям)
- 39. ©Павловская Т.А. (СПбГУ ИТМО) Пример class Subj { // -------------- Класс-источник события --------------------- public event EventHandler
- 40. ©Павловская Т.А. (СПбГУ ИТМО) Механизм событий События построены на основе делегатов: с помощью делегатов вызываются методы-обработчики
- 41. ©Павловская Т.А. (СПбГУ ИТМО) Пример public delegate void Del( object o ); // объявление делегата class
- 42. ©Павловская Т.А. (СПбГУ ИТМО) Обработка событий выполняется в классах-получателях сообщения. Для этого в них описываются методы-обработчики
- 43. ©Павловская Т.А. (СПбГУ ИТМО) Пример public delegate void Del(); // объявление делегата class Subj // класс-источник
- 44. ©Павловская Т.А. (СПбГУ ИТМО) class Class1 { static void Main() { Subj s = new Subj();
- 46. Скачать презентацию