Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство_по_C#.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
10.01 Mб
Скачать

6. Перегрузка функций-членов класса 195

6.1 Перегрузка методов 195

6.2 Перегрузка конструкторов 197

6.3 Перегрузка индексаторов 199

6.4 Основы перегрузки операторов 201

6.4.1 Перегрузка бинарных операторов 202

6.4.2 Перегрузка унарных операторов 203

6.4.3 Выполнение операций со встроенными в C# типами данных 205

6.5 Перегрузка операторов отношения и операторов true - false 205

6.5.1 Перегрузка операторов отношения 205

6.5.2 Перегрузка операторов true и false 207

6.6 Перегрузка логических операторов 208

6.6.1 Перегрузка укороченных логических операторов 209

6.7 Операторы преобразования 212

7. Наследование и полиморфизм 214

7.1 Основы наследования 214

7.2 Защищенный доступ и исключение наследования 216

7.2.1 Организация защищенного доступа 216

7.2.2 Ключевое слово sealed 217

7.2.3 Диаграммы классов Visual Studio 218

7.3 Конструкторы и наследование 219

7.4 Наследование и сокрытие имен 222

7.5 Ссылки на базовый класс и объекты производных классов 223

7.6 Виртуальные методы, свойства и индексаторы 224

7.7 Абстрактные классы 229

8. Обработка исключений 231

8.1 Основы обработки исключений 231

8.1.1 Роль обработки исключений в .NET 231

8.1.2 Составляющие процесса обработки исключений в .NET 232

8.2 Перехват исключений 233

8.2.1 Try и catch 233

8.3 Класс Exception 235

8.4 Конфигурирование состояния исключения 238

8.4.1 Свойство TargetSite 238

8.4.2 Свойство StackTrace 238

8.4.3 Свойство HelpLink 238

8.4.4 Свойство Data 238

8.5 Исключения уровня системы и приложения 242

8.5.1 Исключения уровня системы (System.SystemException) 242

8.5.2 Исключения уровня приложения (System.ApplicationException) 242

8.5.3 Создание специальных исключений 242

8.6 Обработка многочисленных исключений 245

8.6.1 Применение нескольких операторов catch 245

8.6.2 Перехват всех исключений 246

8.6.3 Вложение блоков try 246

8.7 Операторы throw и finally 248

8.7.1 Оператор throw 248

8.7.2 Повторное генерирование исключений 248

8.7.3 Использование блока finally 249

8.8 Исключения, связанные с поврежденным состоянием (Corrupted State Exceptions) 250

8.9 Ключевые слова checked и unchecked 253

9. Интерфейсы, структуры и перечисления 255

9.1 Интерфейсы 255

9.2 Интерфейсные ссылки 259

9.2.1 Ключевое слово as 260

9.2.2 Ключевое слово is 261

9.3 Интерфейсные свойства и индексаторы 261

9.3.1 Интерфейсные свойства 261

9.3.2 Интерфейсные индексаторы 262

9.4 Наследование интерфейсов 263

9.5 Явная реализация интерфейса 263

9.6 Структуры 266

9.7 Перечисления 268

10. Делегаты, события и лямбда-выражения 270

10.1 Делегаты 270

10.1.1 Определение типа делегата в C# 270

10.1.2 Базовые классы System.MulticastDelegate и System.Delegate 271

10.2 Групповой вызов и адресация делегируемых методов 273

10.2.1 Групповое преобразование делегируемых методов 273

10.2.2 Применение методов экземпляра в качестве делегатов 274

10.2.3 Групповая адресация 274

10.3 Ковариантность и контравариантность делегатов 277

10.4 Делегаты Action<T> и Func<T> 278

10.5 Анонимные методы 281

10.6 Лямбда-выражения 283

10.6.1 Одиночные лямбда-выражения 283

10.6.2 Блочные лямбда-выражения 284

10.7 События 287

10.8 Аксессоры событий 288

10.9 Обработка событий в среде .NET Framework 291