Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

8. Операторы языка 265

8.1 Конечные точки и достижимость 265

8.2 Блоки 267

8.2.1 Списки операторов 267

8.3 Пустой оператор 268

8.4 Помеченные операторы 268

8.5 Операторы объявления 269

8.5.1 Объявления локальных переменных 269

8.5.2 Объявления локальных констант 271

8.6 Операторы-выражения 271

8.7 Операторы выбора 272

8.7.1 Оператор if 272

8.7.2 Оператор switch 273

8.8 Операторы итераций 277

8.8.1 Оператор while 277

8.8.2 Оператор do 277

8.8.3 Оператор for 278

8.8.4 Оператор foreach 279

8.9 Операторы перехода 282

8.9.1 Оператор break 283

8.9.2 Оператор continue 284

8.9.3 Оператор goto 284

8.9.4 Оператор return 286

8.9.5 Оператор throw 286

8.10 Оператор try 287

8.11 Операторы checked и unchecked 290

8.12 Оператор lock 291

8.13 Оператор using 292

8.14 Оператор yield 294

9. Пространства имен 298

9.1 Единицы компиляции 298

9.2 Объявления пространства имен 298

9.3 Внешние псевдонимы 300

9.4 Директивы using 301

9.4.1 Директивы using alias 301

9.4.2 Директивы using namespace 304

9.5 Члены пространства имен 306

9.6 Объявления типов 306

9.7 Квалификаторы псевдонима пространства имен 307

9.7.1 Уникальность псевдонимов 308

10. Классы 311

10.1 Объявления классов 311

10.1.1 Модификаторы классов 311

10.1.1.1 Абстрактные классы 312

10.1.1.2 Запечатанные классы 312

10.1.1.3 Статические классы 313

10.1.2 Модификатор partial 314

10.1.3 Параметры типа 314

10.1.4 Спецификация базы класса 314

10.1.4.1 Базовые классы 314

10.1.4.2 Реализация интерфейсов 316

10.1.5 Ограничения параметров типа 316

10.1.6 Тело класса 321

10.2 Разделяемые типы 321

10.2.1 Атрибуты 322

10.2.2 Модификаторы 322

10.2.3 Параметры и ограничения типа 322

10.2.4 Базовый класс 323

10.2.5 Базовые интерфейсы 323

10.2.6 Члены 324

10.2.7 Разделяемые методы 324

10.2.8 Привязка имен 327

10.3 Члены класса 327

10.3.1 Тип экземпляра 329

10.3.2 Члены сформированных типов 329

10.3.3 Наследование 330

10.3.4 Модификатор new 331

10.3.5 Модификаторы доступа 331

10.3.6 Составные типы 332

10.3.7 Статические члены и члены экземпляра 332

10.3.8 Вложенные типы 333

10.3.8.1 Полные имена 333

10.3.8.2 Объявленная доступность 333

10.3.8.3 Скрытие 334

10.3.8.4 Доступ this 335

10.3.8.5 Доступ к частным и защищенным членам типа-контейнера 335

10.3.8.6 Вложенные типы в универсальных классах 336

10.3.9 Зарезервированные имена членов 337

10.3.9.1 Имена членов, зарезервированные для свойств 338

10.3.9.2 Имена членов, зарезервированные для событий 338

10.3.9.3 Имена членов, зарезервированные для индексаторов 339

10.3.9.4 Имена членов, зарезервированные для деструкторов 339

10.4 Константы 339

10.5 Поля 341

10.5.1 Статические поля и поля экземпляров 342

10.5.2 Поля только для чтения 343

10.5.2.1 Использование статических полей только для чтения вместо констант 343

10.5.2.2 Отслеживание версий констант и статических полей только для чтения 343

10.5.3 Поля с модификатором volatile 344

10.5.4 Инициализация поля 345

10.5.5 Инициализаторы переменных 346

10.5.5.1 Инициализация статического поля 347

10.5.5.2 Инициализация поля экземпляра 348

10.6 Методы 348

10.6.1 Параметры метода 350

10.6.1.1 Параметры по значению 352

10.6.1.2 Параметры по ссылке 353

10.6.1.3 Выходные параметры 354

10.6.1.4 Массивы параметров 355

10.6.2 Статические методы и методы экземпляра 357

10.6.3 Виртуальные методы 357

10.6.4 Переопределяющие методы 360

10.6.5 Запечатанные методы 362

10.6.6 Абстрактные методы 363

10.6.7 Внешние методы 365

10.6.8 Разделяемые методы 365

10.6.9 Методы расширения 365

10.6.10 Тело метода 366

10.6.11 Перегрузка метода 367

10.7 Свойства 367

10.7.1 Статические свойства и свойства экземпляра 368

10.7.2 Методы доступа 369

10.7.3 Автоматически реализуемые свойства 374

10.7.4 Доступность 375

10.7.5 Виртуальные, запечатанные, переопределяющие и абстрактные методы доступа 377

10.8 События 379

10.8.1 События, подобные полям 381

10.8.2 Методы доступа к событиям 382

10.8.3 Статические события и события экземпляров 384

10.8.4 Виртуальные, запечатанные, переопределяющие и абстрактные методы доступа 384

10.9 Индексаторы 385

10.9.1 Перегрузка индексатора 388

10.10 Операторы 388

10.10.1 Унарные операторы 390

10.10.2 Бинарные операторы 391

10.10.3 Операторы преобразования 391

10.11 Конструкторы экземпляров 394

10.11.1 Инициализаторы конструкторов 395

10.11.2 Инициализаторы переменных экземпляров 396

10.11.3 Выполнение конструктора 396

10.11.4 Конструкторы по умолчанию 398

10.11.5 Закрытые конструкторы 399

10.11.6 Необязательные параметры конструктора экземпляров 399

10.12 Статические конструкторы 400

10.13 Деструкторы 402

10.14 Итераторы 404

10.14.1 Интерфейсы перечислителя 404

10.14.2 Перечислимые интерфейсы 404

10.14.3 Тип yield 404

10.14.4 Объекты перечислителя 404

10.14.4.1 Метод MoveNext 405

10.14.4.2 Свойство Current 406

10.14.4.3 Метод Dispose 406

10.14.5 Перечислимые объекты 407

10.14.5.1 Метод GetEnumerator 407

10.14.6 Пример реализации 407

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]