Наследование от общего предка
Для интерфейсов ситуация дублирующего наследования маловероятна, но возможна, поскольку интерфейс, как и любой класс, может быть наследником другого интерфейса. Поскольку у интерфейсов наследуются только сигнатуры, а не реализации, то проблема дублирующего наследования сводится к проблеме коллизии имен.
Обработка исключительных ситуаций.Язык C# наследовал схему исключений языка С++, внеся в нее свои коррективы. Рассмотрим схему подробнее:
try {...}
catch (T1 e1) {...}
...
catch(Tk ek) {...}
finally {...}
Программные строки модуля, где возможно возникновение исключительной ситуации, необходимо сделать охраняемыми, заключив их в блок с ключевым словом try. Вслед за try-блоком могут следовать catch-блоки, называемые блоками-обработчи-ками исключительных ситуаций, их может быть несколько, но могут и отсутствовать. Завершает эту последовательность finally-блок - блок финализации, который также может отсутствовать. Вся эта конструкция может быть вложенной - в состав try-блока может входить другая конструкция try-catch-finally.
throw [выражение] – генерирует исключение и созает объект класса, являющегося наследником классаException. Обычно это выражение new, создающее объект класса исключения Exeption или его наследника.
Блок finally. В блоке try могли быть заняты ресурсы - открыты файлы, захвачены некоторые устройства. Освобождение ресурсов, занятых try-блоком, выполняет finally-блок. Если он присутствует, он выполняется всегда, сразу же после завершения работы try-блока, как бы тот ни завершился.
Вопросы к защите лабораторной работы
1. К какой группе типов переменных относятся перечисления и структуры?
2. Описание перечисления и его назначение?
3. Числовые значения констант перечисления по умолчанию?
4. Использование перечислений в программах.
5. Описание структуры. Конструкторы.
6. Обращение к элементам структуры.
7. Что такое класс? Для чего создаются классы?
8. Чем отличается класс от структуры?
9. Модификаторы доступа к полям и методам класса.
10. Модификаторы доступа к классам.
11. Что такое экземпляр класса? Как он создается в C#?
12. Для чего в классе определяется конструктор? Сколько может быть конструкторов в классе? Когда вызывается конструктор?
13. Как можно обратиться к полям и методам класса?
14. Методы-свойства класса. Назначение и описание.
15. Статические поля и методы класса. Назначение, описание и вызов статических методов.
16. Индексаторы. Назначение и описание.
17. Какое наследование применяется в С#? Что наследует потомок от класса-родителя?
18. Изменение методов родителя в классе наследника.
19. Конструкторы при наследовании.
20. Описание абстрактных методов и классов.
21. Вложенные классы.
22. Интерфейсы. Назначение и описание.
23. Наследование в интерфейсах.
24. Реализация методов интерфейсов в классах.
25. Коллизия имен в интерфейсах.
26. Исключения. Обработка исключений в С#.
27. Создание классов исключений и генерация исключения.