Подробное оглавление
- Предисловие
- Введение
- Область §1
- §2 Нормативные ссылки
- §3 Термины и определения
- §4 Общее описание
- Соответствие §5
-
§6 Лексическая структура
- Программы §6.1
- §6.2 Грамматики
-
Лексический анализ §6.3
- §6.3.1 General
- §6.3.2 Конца линии
- Примечания §6.3.3
- §6.3.4 Пробелы
- Токены §6.4
- Директивы предварительной обработки §6.5
-
Основные понятия §7
- Запуск приложения §7.1
- §7.2 Завершение приложения
- Объявления §7.3
- Члены §7.4
-
Доступ к члену §7.5
- §7.5.1 General
- §7.5.2 Объявленная доступность
- Домены специальных возможностей §7.5.3
- §7.5.4 Защищенный доступ
- Ограничения специальных возможностей §7.5.5
- §7.6 Сигнатуры и перегрузка
- Области §7.7
- §7.8 Пространства имен и имена типов
- §7.9 Автоматическое управление памятью
- §7.10 Порядок выполнения
-
Типы §8
- §8.1 Общие
-
Ссылочные типы §8.2
- §8.2.1 Общие
- Типы классов §8.2.2
- §8.2.3 Тип объекта
- §8.2.4 Динамический тип
- §8.2.5 Тип строки
- Типы интерфейсов §8.2.6
- Типы массивов §8.2.7
- Типы делегатов §8.2.8
-
Типы значений §8.3
- §8.3.1 General
- §8.3.2 Тип System.ValueType
- Конструкторы по умолчанию §8.3.3
- Типы структур §8.3.4
- §8.3.5 Простые типы
- §8.3.6 Целочисленные типы
- Типы с плавающей запятой 8.3.7
- §8.3.8 Десятичный тип
- §8.3.9 Тип Bool
- Типы перечисления §8.3.10
- Типы кортежей §8.3.11
- Типы значений, допускающих значение NULL,8.3.12
- §8.3.13 Бокс и распаковка
-
§8.4 Созданные типы
- §8.4.1 General
- Аргументы типа §8.4.2
- §8.4.3 Открытые и закрытые типы
- §8.4.4 Привязанные и несвязанные типы
- §8.4.5 , удовлетворяющие ограничения
- Параметры типа §8.5
- Типы деревьев выражений §8.6
- §8.7 Динамический тип
- §8.8 Неуправляемые типы
-
§8.9 Ссылочные типы и допустимость значений NULL
- §8.9.1 Общие
- Типы ссылок, не допускающие значения NULL, §8.9.2
- Типы ссылок, допускающие значение NULL,8.9.3
-
Контекст, допускающий значение NULL,8.9.4
- §8.9.4.1 General
- Disable §8.9.4.2 Nullable
- §8.9.4.3 , допускающие значение NULL, заметки
- Предупреждения , допускающие значение NULL,8.9.4.4
- Включение в формате NULL §8.9.4.5
- §8.9.5 Nullabilities и состояния NULL
-
§9 Переменные
- §9.1 Общие
-
Категория переменных §9.2
- §9.2.1 General
- §9.2.2 Статические переменные
- §9.2.3 Переменные экземпляра
- Элементы массива §9.2.4
- Параметры значения §9.2.5
- Параметры ссылки на §9.2.6
- Параметры выходных данных §9.2.7
- §9.2.8 Входные параметры
- §9.2.9 Локальные переменные
- Значения по умолчанию §9.3
-
§9.4 Определенное назначение
- §9.4.1 General
- §9.4.2 Первоначально назначенные переменные
- §9.4.3 Изначально неназначенные переменные
-
§9.4.4 Точные правила определения определенного назначения
- §9.4.4.1 General
- §9.4.4.2 Общие правила для инструкций
- §9.4.4.3 Блокируемые операторы, проверенные и снятые операторы
- Операторы выражений §9.4.4.4
- Операторы объявления §9.4.4.5
- §9.4.4.6 Если операторы
- Операторы switch §9.4.4.7 Switch
- §9.4.4.8 В то время как операторы
- Операторы Do §9.4.4.9
- §9.4.4.10 For statements
- §9.4.4.11 Break, continue и goto statements
- Операторы Throw §9.4.4.12 Throw
- Операторы Return §9.4.4.13
- Операторы Try-catch 9.4.4.14
- §9.4.4.15 Инструкции Try-finally
- §9.4.4.16 Инструкции Try-catch-finally
- §9.4.4.17 Инструкции Foreach
- §9.4.4.18 Using statements
- Операторы блокировки §9.4.4.19
- Операторы доходности §9.4.4.20
- §9.4.4.21 Общие правила для константных выражений
- §9.4.4.22 Общие правила для простых выражений
- §9.4.4.23 Общие правила для выражений с внедренными выражениями
- §9.4.4.24 Выражения вызова и выражения создания объектов
- §9.4.4.25 Простые выражения назначения
- §9.4.4.26 && expressions
- §9.4.4.27 || выражения
- §9.4.4.28 ! выражения
- §9.4.4.29 ?? выражения
- §9.4.4.30 ?: выражения
- Анонимные функции §9.4.4.31
- §9.4.4.32 Вызов выражений
- §9.4.4.33 Правила для переменных в локальных функциях
- §9.4.4.34 is-pattern expressions
- Ссылки на переменные §9.5
- §9.6 Атомарность ссылок на переменные
-
§9.7 Ссылочные переменные и возвращается
- §9.7.1 General
-
§9.7.2 Ref безопасных контекстов
- §9.7.2.1 General
- §9.7.2.2 Локальный контекст ссылки на локальные переменные
- §9.7.2.3 Безопасный контекст ref параметров
- §9.7.2.4 Поле ref safe context
- Операторы §9.7.2.5
- Вызов функции §9.7.2.6
- §9.7.2.7 Значения
- §9.7.2.8 Конструктор вызовов
- §9.7.2.9 Ограничения ссылочных переменных
-
§10 Преобразования
- §10.1 General
-
§10.2 Неявные преобразования
- §10.2.1 General
- Преобразование удостоверений §10.2.2
- §10.2.3 Неявные числовые преобразования
- §10.2.4 Неявные преобразования перечисления
- §10.2.5 Неявные интерполированные преобразования строк
- §10.2.6 Неявные преобразования, допускающие значение NULL
- Преобразование литералов NULL 10.2.7
- §10.2.8 Неявные преобразования ссылок
- Преобразования бокса §10.2.9
- §10.2.10 Неявные динамические преобразования
- §10.2.11 Неявные преобразования выражений констант
- §10.2.12 Неявные преобразования с использованием параметров типа
- §10.2.13 Неявные преобразования кортежей
- §10.2.14 Определяемые пользователем неявные преобразования
- §10.2.15 Анонимные преобразования функций и преобразования групп методов
- §10.2.16 Преобразования литералов по умолчанию
- §10.2.17 Неявные преобразования вызовов
-
Явные преобразования §10.3
- §10.3.1 General
- §10.3.2 Явные числовые преобразования
- §10.3.3 Явные преобразования перечисления
- §10.3.4 Явные преобразования, допускающие значение NULL
- Преобразование явных ссылок на §10.3.5
- §10.3.6 Явные преобразования кортежей
- §10.3.7 Распаковка преобразований
- §10.3.8 Явные преобразования с параметрами типа
- §10.3.9 Определяемые пользователем явные преобразования
- §10.4 Стандартные преобразования
- §10.5 Определяемые пользователем преобразования
- §10.6 Преобразования с использованием типов, допускающих значение NULL
- §10.7 Анонимные преобразования функций
- Преобразования групп методов §10.8
-
§11 Шаблоны и сопоставление шаблонов
- §11.1 General
- Формы шаблонов §11.2
- §11.3 Подзапупка шаблона
- §11.4 Шаблоны исчерпывающего характера
-
Выражения §12
- §12.1 General
- Классификации выражений §12.2
-
§12.3 Статическая и динамическая привязка
- §12.3.1 General
- §12.3.2 Время привязки
- Динамическая привязка §12.3.3
- §12.3.4 Типы вложенных выражений
- Операторы §12.4
- Подстановка члена §12.5
-
Члены функции §12.6
- §12.6.1 General
- Список аргументов §12.6.2
-
§12.6.3 Тип вывода
- §12.6.3.1 General
- §12.6.3.2 Первый этап
- §12.6.3.3 Второй этап
- Типы входных данных §12.6.3.4
- Типы выходных данных §12.6.3.5
- §12.6.3.6 Зависимость
- §12.6.3.7 Вывод типов выходных данных
- §12.6.3.8 Явные вывода типов параметров
- §12.6.3.9 Точные выводы
- §12.6.3.10 Вывод с нижней границой
- §12.6.3.11 Вывод с верхними границами
- §12.6.3.12 Исправление
- §12.6.3.13 Выводимого типа возвращаемого значения
- §12.6.3.14 Тип вывода для преобразования групп методов
- §12.6.3.15 Поиск наиболее распространенного типа набора выражений
-
Разрешение перегрузки §12.6.4
- §12.6.4.1 General
- §12.6.4.2 Применимый член функции
- §12.6.4.3 Лучший член функции
- §12.6.4.4 Лучший режим передачи параметров
- §12.6.4.5 Лучшее преобразование из выражения
- §12.6.4.6 Точное сопоставление выражений
- §12.6.4.7 Лучший целевой объект преобразования
- Перегрузка §12.6.4.8 в универсальных классах
- §12.6.5 Компиляция во время проверки вызова динамического члена
- Вызов члена функции §12.6.6
- Деконструкция §12.7
-
Первичные выражения §12.8
- §12.8.1 General
- §12.8.2 Литералы
- §12.8.3 Интерполированные строковые выражения
- §12.8.4 Простые имена
- §12.8.5 Круглые скобки
- Выражения кортежа §12.8.6
- Доступ к члену §12.8.7
- §12.8.8 . Доступ к условному члену NULL
- §12.8.9 Null-forgiving expressions
-
Выражения вызова §12.8.10
- §12.8.10.1 General
- Вызовы метода §12.8.10.2
- Вызовы метода расширения §12.8.10.3
- §12.8.10.4 Делегирование вызовов
- §12.8.11 Выражение условного вызова NULL
- Доступ к элементу §12.8.12
- §12.8.13 Доступ к условному элементу NULL
- §12.8.14 Этот доступ
- §12.8.15 Базовый доступ
- §12.8.16 Операторы добавочного и декремента
-
§12.8.17 Новый оператор
- §12.8.17.1 General
- Выражения создания объектов §12.8.17.2
- Инициализаторы объектов §12.8.17.3
- Инициализаторы коллекции §12.8.17.4
- Выражения создания массива §12.8.17.5
- Выражения создания делегатов §12.8.17.6
- §12.8.17.7 Анонимные выражения создания объектов
- §12.8.18 Оператор typeof
- §12.8.19 Оператор sizeof
- §12.8.20 Проверенные и снятые операторы
- Выражения значений по умолчанию §12.8.21
- §12.8.22 Выделение стека
- §12.8.23 Оператор nameof
- Выражения анонимных методов §12.8.24
- Унарные операторы §12.9
- Арифметические операторы §12.10
- Операторы shift §12.11
-
Операторы реляционного и типового тестирования §12.12
- §12.12.1 General
- Операторы сравнения целых чисел §12.12.2
- Операторы сравнения с плавающей запятой §12.12.3
- Операторы сравнения десятичных разрядов §12.12.4
- Операторы равенства "12.12.5 "
- Операторы сравнения перечислений §12.12.6
- Операторы равенства ссылочных типов §12.12.7
- Операторы равенства строк §12.12.8
- Операторы равенства делегатов §12.12.9
- §12.12.10 Операторы равенства между типами значений, допускаемыми значением NULL, и литералом NULL
- Операторы равенства кортежа §12.12.11
-
§12.12.12 Оператор is
- §12.12.12.1 Оператор is-type
- §12.12.12.2 Оператор is-pattern
- §12.12.13 Оператор as
-
Логические операторы §12.13
- §12.13.1 General
- Операторы целочисленного числа §12.13.2
- Логические операторы перечисления §12.13.3
- Логические операторы §12.13.4
- §12.13.5 Nullable Boolean & и | операторы
-
Условные логические операторы §12.14
- §12.14.1 General
- Логические операторы §12.14.2
- §12.14.3 Определяемые пользователем условные логические операторы
- §12.15 Оператор объединения null
- §12.16 Оператор выражения броска
- Выражения объявления §12.17
- Условный оператор §12.18
-
§12.19 Анонимные выражения функции
- §12.19.1 General
- §12.19.2 Анонимные подписи функций
- §12.19.3 Анонимные тела функций
- Разрешение перегрузки §12.19.4
- §12.19.5 Анонимные функции и динамическая привязка
-
§12.19.6 Внешние переменные
- §12.19.6.1 General
- §12.19.6.2 Захваченные внешние переменные
- §12.19.6.3 Экземпляр локальных переменных
- §12.19.7 Оценка анонимных выражений функций
- Пример реализации §12.19.8
-
Выражения запросов §12.20
- §12.20.1 General
- §12.20.2 Неоднозначность в выражениях запросов
-
Перевод выражений запроса §12.20.3
- §12.20.3.1 General
- §12.20.3.2 С продолжением
- §12.20.3.3 Явные типы переменных диапазона
- §12.20.3.4 Дегенерации выражений запросов
- §12.20.3.5 From, let, where, join and orderby clauses
- §12.20.3.6 Выбор предложений
- Предложения группы §12.20.3.7
- §12.20.3.8 Прозрачные идентификаторы
- §12.20.4 Шаблон выражения запроса
-
Операторы назначения §12.21
- §12.21.1 General
- §12.21.2 Простое назначение
- Назначение ссылок §12.21.3
- §12.21.4 Составное назначение
- Назначение событий §12.21.5
- Выражение §12.22
- Константные выражения §12.23
- Логическое выражение §12.24
-
§13 Операторы
- §13.1 General
- §13.2 Конечные точки и доступность
-
Блоки §13.3
- §13.3.1 General
- Список инструкций §13.3.2
- §13.4 Пустой оператор
- Операторы с метками §13.5
-
Операторы объявления §13.6
- §13.6.1 General
- §13.6.2 Локальные объявления переменных
- §13.6.3 Локальные объявления констант
- Объявления локальных функций §13.6.4
- Операторы выражений §13.7
- Операторы выбора §13.8
- Операторы итерации §13.9
- Операторы перехода §13.10
- §13.11 Инструкция try
- §13.12 Проверенные и снятые операторы
- §13.13 Инструкция блокировки
- §13.14 Инструкция using
- §13.15 Оператор доходности
- §14 Пространства имен
-
Классы §15
- §15.1 General
-
Объявления классов §15.2
- §15.2.1 General
-
Модификаторы классов §15.2.2
- §15.2.2.1 General
- Абстрактные классы §15.2.2
- Классы Sealed §15.2.2.3
-
Статические классы §15.2.2.4
- §15.2.2.4.1 General
- §15.2.2.4.2 , ссылающийся на типы статических классов
- Параметры типа §15.2.3
- Базовая спецификация класса §15.2.4
- Ограничения параметров типа §15.2.5
- Тело класса §15.2.6
- §15.2.7 Частичные объявления
-
Члены класса §15.3
- §15.3.1 Общие
- §15.3.2 Тип экземпляра
- §15.3.3 Члены созданных типов
- §15.3.4 Наследование
- §15.3.5 Новый модификатор
- Модификаторы доступа §15.3.6
- Типы компонентов §15.3.7
- §15.3.8 Статические и элементы экземпляра
- §15.3.9 Вложенные типы
-
§15.3.10 Зарезервированные имена элементов
- §15.3.10.1 General
- §15.3.10.2 Имена членов, зарезервированные для свойств
- §15.3.10.3 Имена участников, зарезервированные для событий
- §15.3.10.4 Имена членов, зарезервированные для индексаторов
- §15.3.10.5 Имена членов зарезервированы для методов завершения
- Имена методов §15.3.10.6 , зарезервированные для операторов
- Константы §15.4
- Поля §15.5
-
Методы §15.6
- §15.6.1 General
-
Параметры метода §15.6.2
- §15.6.2.1 General
- Параметры значения §15.6.2.2
-
§15.6.2.3 По ссылке
- §15.6.2.3.1 General
- §15.6.2.3.2 Входные параметры
- Параметры ссылки на §15.6.2.3.3
- Параметры вывода §15.6.2.3.4
- Массивы параметров §15.6.2.4
- Методы статического и экземпляра §15.6.3
- Виртуальные методы §15.6.4
- Методы Переопределения §15.6.5
- Запечатанные методы §15.6.6
- Абстрактные методы §15.6.7
- Внешние методы §15.6.8
- Частичные методы §15.6.9
- Методы расширения §15.6.10
- Текст метода §15.6.11
-
Свойства §15.7
- §15.7.1 General
- Свойства статического и экземпляра §15.7.2
- Методы доступа §15.7.3
- §15.7.4 Автоматически реализованные свойства
- Специальные возможности §15.7.5
- §15.7.6 Виртуальные, запечатанные, переопределения и абстрактные методы доступа
-
События §15.8
- §15.8.1 General
- События типа "15.8.2"
- Методы доступа к событиям §15.8.3
- §15.8.4 Статические и экземплярные события
- §15.8.5 Виртуальные, запечатанные, переопределения и абстрактные методы доступа
- Индексаторы §15.9
- Операторы §15.10
- Конструкторы экземпляров §15.11
- §15.12 Статические конструкторы
- Методы завершения §15.13
-
§15.14 Итераторы
- §15.14.1 General
- Интерфейсы перечислителя §15.14.2
- Интерфейсы перечисления §15.14.3
- Тип доходности §15.14.4
-
Объекты перечислителя §15.14.5
- §15.14.5.1 General
- Метод MoveNext §15.14.5.2
- §15.14.5.3 Текущее свойство
- §15.14.5.4 Метод Dispose
-
§15.14.6 Перечисление объектов
- §15.14.6.1 General
- §15.14.6.2 Метод GetEnumerator
-
§15.15 Асинхронные функции
- §15.15.1 General
- Шаблон построителя типов задач §15.15.2
- §15.15.3 Оценка возвращаемой задачи асинхронной функции
- §15.15.4 Оценка асинхронной функции, возвращающей пустоту
-
§16 Структур
- §16.1 General
-
Объявления структуры §16.2
- §16.2.1 General
- Модификаторы структуры §16.2.2
- Модификатор ссылок 16.2.3
- §16.2.4 Частичный модификатор
- Интерфейсы структуры §16.2.5
- Текст структуры §16.2.6
- Элементы структуры §16.3
-
Различия между классами и структурой §16.4
- §16.4.1 General
- Семантика значений §16.4.2
- §16.4.3 Наследование
- Назначение §16.4.4
- §16.4.5 Значения по умолчанию
- §16.4.6 Бокс и распаковка
- §16.4.7 Значение этого
- Инициализаторы полей §16.4.8
- Конструкторы §16.4.9
- §16.4.10 Статические конструкторы
- §16.4.11 Автоматически реализованы свойства
-
§16.4.12 Безопасное ограничение контекста
- §16.4.12.1 General
- Безопасный контекст параметра §16.4.12.2
- §16.4.12.3 Безопасный контекст локальной переменной
- §16.4.12.4 Безопасный контекст поля
- Операторы §16.4.12.5
- Метод и вызов свойств §16.4.12.6
- §16.4.12.7 stackalloc
- §16.4.12.8 Вызовы конструктора
- Массивы §17
-
§18 Интерфейсы
- §18.1 General
- Объявления интерфейса §18.2
- Текст интерфейса §18.3
- Элементы интерфейса §18.4
- §18.5 Квалифицированные имена элементов интерфейса
-
Реализации интерфейса §18.6
- §18.6.1 General
- Реализация явных элементов интерфейса §18.6.2
- §18.6.3 Уникальность реализованных интерфейсов
- §18.6.4 Реализация универсальных методов
- Сопоставление интерфейсов §18.6.5
- Наследование реализации интерфейса §18.6.6
- Повторная реализация интерфейса §18.6.7
- §18.6.8 Абстрактные классы и интерфейсы
-
§19 Перечисления
- §19.1 General
- Объявления перечисления §19.2
- §19.3 Модификаторы enum
- Элементы перечисления §19.4
- §19.5 Тип System.Enum
- §19.6 Значения и операции перечисления
-
§20 делегатов
- §20.1 General
- Объявления делегатов §20.2
- Члены делегата §20.3
- Совместимость делегатов §20.4
- Экземпляр делегата §20.5
- §20.6 Делегирование вызова
-
§21 Исключения
- §21.1 Общие
- §21.2 Причины исключений
- §21.3 Класс System.Exception
- §21.4 Как обрабатываются исключения
- Классы распространенных исключений §21.5
-
Атрибуты §22
- §22.1 Общие
-
Классы атрибутов §22.2
- §22.2.1 General
- Использование атрибутов §22.2.2
- §22.2.3 Позиционные и именованные параметры
- Типы параметров атрибута §22.2.4
- Спецификация атрибута §22.3
- Экземпляры атрибутов §22.4
-
Зарезервированные атрибуты §22.5
- §22.5.1 General
- §22.5.2 АтрибутUsage
- §22.5.3 Условный атрибут
- §22.5.4 Устаревший атрибут
- §22.5.5 Атрибут AsyncMethodBuilder
- Атрибуты caller-info §22.5.6
- Атрибуты анализа кода §22.5.7
- Атрибуты §22.6 для взаимодействия
-
Небезопасный код §23
- §23.1 General
- §23.2 Небезопасные контексты
- Типы указателей §23.3
- §23.4 Фиксированные и перемещаемые переменные
-
Преобразования указателя §23.5
- §23.5.1 General
- Массивы указателей §23.5.2
-
§23.6 Указатели в выражениях
- §23.6.1 General
- §23.6.2 указателя
- Доступ к члену указателя §23.6.3
- Доступ к элементу указателя 23.6.4
- §23.6.5 Оператор адреса
- §23.6.6 Указатель и увеличение и уменьшение
- §23.6.7 арифметический указатель
- Сравнение указателей §23.6.8
- §23.6.9 Оператор sizeof
- §23.7 Фиксированная инструкция
-
Буферы фиксированного размера §23.8
- §23.8.1 General
- Объявления буфера фиксированного размера §23.8.2
- §23.8.3 Буферы фиксированного размера в выражениях
- §23.8.4 Определенное задание
- §23.9 Выделение стека
-
§A Грамматика
- §A.1 General
- §A.2 Лексическая грамматика
- §A.3 Синтаксическая грамматика
- Расширения грамматики A.4 для небезопасного кода
-
Проблемы с переносимостью ;B
- §B.1 General
- §B.2 Неопределенное поведение
- Поведение, определяемое реализацией ;B.3
- •B.4 Неопределенное поведение
- §B.5 Другие проблемы
-
Стандартная библиотека §C
- §C.1 General
- §C.2 Стандартные типы библиотек, определенные в ISO/IEC 23271
- §C.3 Стандартные типы библиотек, не определенные в ISO/IEC 23271
- Спецификации формата §C.4
- Аббревиаций типов библиотеки §C.5
-
Примечания к документации по §D
- §D.1 General
- Введение в §D.2
-
§D.3 Рекомендуемые теги
- §D.3.1 General
- §D.3.2<c>
- Код §D.3.3<>
- Пример "D.3.4"<>
- Исключение §D.3.5<>
- §D.3.6<включают>
- Список §D.3.7<>
- §D.3.8<para>
- §D.3.9<param>
- §D.3.10<paramref>
- Разрешение "D.3.11"<>
- Примечания "D.3.12<">
- Возвращается "D.3.13<">
- §D.3.14<см.>
- §D.3.15<seealso>
- Сводка по D.3.16<>
- §D.3.17<typeparam>
- §D.3.18<typeparamref>
- Значение §D.3.19<>
- §D.4 Обработка файла документации
-
Пример "D.5 "
- Исходный код C# §D.5.1
- §D.5.2 Результирующий XML
- §E Bibliography
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
ECMA C# draft specification