Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
- Предисловие
- Введение
- Область §1
- §2 Нормативные ссылки
- §3 Термины и определения
- §4 Общее описание
- Соответствие §5
-
§6 Лексическая структура
- Программы §6.1
- §6.2 Грамматики
-
Лексический анализ §6.3
- §6.3.1 Общее
- §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 Общее
- §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 Общее
- §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 Общее
- Аргументы типа §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 Общее
- Disable §8.9.4.2 Nullable
- §8.9.4.3 , допускающие значение NULL, заметки
- Предупреждения , допускающие значение NULL,8.9.4.4
- Включение в формате NULL §8.9.4.5
- §8.9.5 Налицие значений null и состояния null
-
§9 Переменные
- §9.1 Общие
-
Категория переменных §9.2
- §9.2.1 Общее
- §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 Общее
- §9.4.2 Первоначально назначенные переменные
- §9.4.3 Изначально неназначенные переменные
-
§9.4.4 Точные правила определения определенного назначения
- §9.4.4.1 Общее
- §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 Для заявлений
- §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 Использование операторов
- Операторы блокировки §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 && выражения- §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 выражения с шаблонами
- Ссылки на переменные §9.5
- §9.6 Атомарность ссылок на переменные
-
§9.7 Ссылочные переменные и возвращается
- §9.7.1 Общее
-
§9.7.2 Ref безопасных контекстов
- §9.7.2.1 Общее
- §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 Общее
-
§10.2 Неявные преобразования
- §10.2.1 Общее
- Преобразование удостоверений §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 Общее
- §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 Общее
- Формы шаблонов §11.2
- §11.3 Подзапупка шаблона
- §11.4 Шаблоны исчерпывающего характера
-
Выражения §12
- §12.1 Общее
- Классификации выражений §12.2
-
§12.3 Статическая и динамическая привязка
- §12.3.1 Общее
- §12.3.2 Время привязки
- Динамическая привязка §12.3.3
- §12.3.4 Типы вложенных выражений
- Операторы §12.4
- Подстановка члена §12.5
-
Члены функции §12.6
- §12.6.1 Общее
- Список аргументов §12.6.2
-
§12.6.3 Тип вывода
- §12.6.3.1 Общее
- §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.3.16 Поиск наиболее распространенного типа набора выражений
-
Разрешение перегрузки §12.6.4
- §12.6.4.1 Общее
- §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 Общее
- §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
-
Выражения вызова §12.8.10
- §12.8.10.1 Общее
- Вызовы метода §12.8.10.2
- Вызовы метода расширения §12.8.10.3
- §12.8.10.4 Делегирование вызовов
- §12.8.11 Выражение условного вызова NULL
-
Доступ к элементу §12.8.12
- §12.8.12.1 Общее
- Доступ к массиву §12.8.12.2
- §12.8.12.3 Строковый доступ
- §12.8.12.4 Доступ индексатора
- §12.8.13 Доступ к условному элементу NULL
- §12.8.14 Этот доступ
- §12.8.15 Базовый доступ
- §12.8.16 Операторы добавочного и декремента
-
§12.8.17 Новый оператор
- §12.8.17.1 Общее
-
§12.8.17.2 Выражения создания объектов
- §12.8.17.2.1 Общее
- §12.8.17.2.2 Инициализаторы объектов
- §12.8.17.2.3 Инициализаторы коллекции
- §12.8.17.3 Выражения создания анонимного объекта
- §12.8.17.4 Выражения создания массива
- §12.8.17.5 Выражения создания делегатов
- §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.9.1 Общее
- Оператор Unary plus §12.9.2
- Оператор унарного минуса §12.9.3
- Оператор логического отрицания §12.9.4
- Оператор дополнения по битовой стрелке §12.9.5
- §12.9.6 Оператор Hat
- §12.9.7 Операторы увеличения и уменьшения префикса
- §12.9.8 Выражения приведения
- §12.9.9 Выражения Await
- §12.10 Оператор range
- §12.11 Арифметические операторы
- §12.12 Операторы shift
-
§12.13 Операторы реляционного и типового тестирования
- §12.13.1 Общее
- §12.13.2 Операторы сравнения целых чисел
- §12.13.3 Операторы сравнения с плавающей запятой
- §12.13.4 Операторы десятичного сравнения
- §12.13.5 Логические операторы равенства
- §12.13.6 Операторы сравнения перечислений
- §12.13.7 Операторы равенства ссылочных типов
- §12.13.8 Операторы равенства строк
- §12.13.9 Операторы делегирования равенства
- §12.13.10 Операторы равенства между типами значений, допускаемыми значением NULL, и литералом NULL
- §12.13.11 Операторы равенства кортежей
-
§12.13.12 Оператор is
- §12.13.12.1 Оператор is-type
- §12.13.12.2 Оператор is-pattern
- §12.13.13 Оператор as
- §12.14 Логические операторы
- §12.15 Условные логические операторы
- §12.16 Оператор объединения null
- §12.17 Оператор выражения", вызываемого вызовом
- §12.18 Выражения объявления
- §12.19 Условный оператор
-
§12.20 Анонимные выражения функций
- §12.20.1 Общее
- §12.20.2 Анонимные подписи функций
- §12.20.3 Анонимные тела функций
- §12.20.4 Разрешение перегрузки
- §12.20.5 Анонимные функции и динамическая привязка
-
§12.20.6 Внешние переменные
- §12.20.6.1 Общее
- §12.20.6.2 Захваченные внешние переменные
- §12.20.6.3 Создание экземпляра локальных переменных
- §12.20.7 Оценка анонимных выражений функций
- §12.20.8 Пример реализации
-
§12.21 Выражения запросов
- §12.21.1 Общее
- §12.21.2 Неоднозначность выражений запросов
-
§12.21.3 Преобразование выражений запроса
- §12.21.3.1 Общее
- §12.21.3.2 Выражения запросов с продолжением
- §12.21.3.3 Явные типы переменных диапазона
- §12.21.3.4 Вырождение выражений запросов
- §12.21.3.5 От, let, where, join and orderby clauses
- §12.21.3.6 Выбор предложений
- §12.21.3.7 Предложения групп
- §12.21.3.8 Прозрачные идентификаторы
- §12.21.4 Шаблон выражения запроса
- §12.22 Операторы назначения
- §12.23 Выражение
- §12.24 Константные выражения
- §12.25 Логические выражения
-
§13 Операторы
- §13.1 Общее
- §13.2 Конечные точки и доступность
- Блоки §13.3
- §13.4 Пустой оператор
- Операторы с метками §13.5
-
Операторы объявления §13.6
- §13.6.1 Общее
- §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 Общее
-
Объявления классов §15.2
- §15.2.1 Общее
-
Модификаторы классов §15.2.2
- §15.2.2.1 Общее
- Абстрактные классы §15.2.2
- Классы Sealed §15.2.2.3
-
Статические классы §15.2.2.4
- §15.2.2.4.1 Общее
- §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 Общее
- §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 Общее
-
Параметры метода §15.6.2
- §15.6.2.1 Общее
- Параметры значения §15.6.2.2
-
§15.6.2.3 По ссылке
- §15.6.2.3.1 Общее
- §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 Общее
- Свойства статического и экземпляра §15.7.2
- Методы доступа §15.7.3
- §15.7.4 Автоматически реализованные свойства
- Специальные возможности §15.7.5
- §15.7.6 Виртуальные, запечатанные, переопределения и абстрактные методы доступа
-
События §15.8
- §15.8.1 Общее
- События типа "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.15 Синхронные и асинхронные итераторы
- §15.15.1 Общее
- §15.15.2 Интерфейсы перечислителя
- §15.15.3 Перечислимые интерфейсы
- §15.15.4 Тип доходности
-
§15.15.5 Объекты перечислителя
- §15.15.5.1 Общее
- §15.15.5.2 Перемещение перечислителя
- §15.15.5.3 Получение текущего значения
- §15.15.5.4 Удаление ресурсов
-
§15.15.6 Перечисление объектов
- §15.15.6.1 Общее
- §15.15.6.2 Метод GetEnumerator или GetAsyncEnumerator
-
§16 Структур
- §16.1 Общее
-
Объявления структуры §16.2
- §16.2.1 Общее
- Модификаторы структуры §16.2.2
- Модификатор ссылок 16.2.3
- §16.2.4 Частичный модификатор
- Интерфейсы структуры §16.2.5
- Текст структуры §16.2.6
- Элементы структуры §16.3
-
Различия между классами и структурой §16.4
- §16.4.1 Общее
- Семантика значений §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.13 Индексаторы
- §16.4.14 События
-
§16.4.15 Ограничение безопасного контекста
- §16.4.15.1 Общее
- §16.4.15.2 Безопасный контекст параметров
- §16.4.15.3 Безопасный контекст локальной переменной
- §16.4.15.4 Безопасный контекст поля
- §16.4.15.5 Операторы
- §16.4.15.6 Вызов метода и свойства
- §16.4.15.7 stackalloc
- §16.4.15.8 Вызовы конструктора
- Массивы §17
- §18 Расширенное индексирование и срезы
-
§19 Интерфейсы
- §19.1 Общее
- §19.2 Объявления интерфейса
- §19.3 Текст интерфейса
- §19.4 Элементы интерфейса
- §19.5 Квалифицированные имена элементов интерфейса
-
§19.6 Реализации интерфейса
- §19.6.1 Общее
- §19.6.2 Явные реализации элементов интерфейса
- §19.6.3 Уникальность реализованных интерфейсов
- §19.6.4 Реализация универсальных методов
- §19.6.5 Сопоставление интерфейсов
- §19.6.6 Наследование реализации интерфейса
- §19.6.7 Повторная реализация интерфейса
- §19.6.8 Абстрактные классы и интерфейсы
- §20 Перечисления
- §21 Делегаты
- §22 Исключения
-
§23 Атрибуты
- §23.1 Общее
- §23.2 Классы атрибутов
- §23.3 Спецификация атрибутов
- §23.4 Экземпляры атрибутов
- §23.5 Зарезервированные атрибуты
- §23.6 Атрибуты взаимодействия
- §24 Небезопасный код
-
§A Грамматика
- §A.1 Общее
- §A.2 Лексическая грамматика
- §A.3 Синтаксическая грамматика
- Расширения грамматики A.4 для небезопасного кода
-
Проблемы с переносимостью ;B
- §B.1 Общее
- §B.2 Неопределенное поведение
- Поведение, определяемое реализацией ;B.3
- •B.4 Неопределенное поведение
- §B.5 Другие проблемы
-
Стандартная библиотека §C
- §C.1 Общее
- §C.2 Стандартные типы библиотек, определенные в ISO/IEC 23271
- §C.3 Стандартные типы библиотек, не определенные в ISO/IEC 23271
- Спецификации формата §C.4
- Аббревиаций типов библиотеки §C.5
-
Примечания к документации по §D
- §D.1 Общее
- Введение в §D.2
-
§D.3 Рекомендуемые теги
- §D.3.1 Общее
- §D.3.2<c>
- Код §D.3.3<>
- Пример "D.3.4"<>
- Исключение §D.3.5<>
- §D.3.6<включают>
- Список §D.3.7<>
- §D.3.8<Пункт>
- §D.3.9<param>
- §D.3.10<paramref>
- Разрешение "D.3.11"<>
- Примечания "D.3.12<">
- Возвращается "D.3.13<">
- §D.3.14<см.>
- §D.3.15<см. также>
- Сводка по 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 Библиография
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
ECMA C# draft specification