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

5.3.3.17Операторы using

Для оператора using операции stmt в форме

using ( resource-acquisition ) внедренный_оператор

  • состояние определенного присваивания переменной v в начале операции resource-acquisition соответствует состоянию переменной v в начале операции stmt.

  • Состояние определенного присваивания переменной v при переключении потока управления на внедренный_оператор соответствует состоянию переменной v в конце операции приобретение_ресурсов.

5.3.3.18Операторы lock

Для оператора lock операции stmt в форме

lock ( выражение ) внедренный_оператор

  • состояние определенного присваивания переменной v в начале выражения expr соответствует состоянию переменной v в начале операции stmt;

  • Состояние определенного присваивания переменной v при переключении потока управления на внедренный_оператор соответствует состоянию переменной v в конце выражения expr.

5.3.3.19Операторы yield

Для оператора yield return операции stmt в форме

yield return выражение ;

  • состояние определенного присваивания переменной v в начале выражения expr соответствует состоянию переменной v в начале операции stmt;

  • состояние определенного присваивания переменной v в конце операции stmt соответствует состоянию переменной v в конце выражения expr.

Оператор yield break не влияет на состояние определенного присваивания.

5.3.3.20Общие правила для простых выражений

Указанное ниже правило применяется к следующим видам выражений: литералы (§7.6.1), простые имена (§7.6.2), выражения доступа к членам (§7.6.4), неиндексированные выражения базового доступа (§7.6.8), выражения typeof (§7.6.11) и выражения значений по умолчанию (§7.6.13).

  • Состояние определенного присваивания переменной v в конце такого выражения соответствует состоянию определенного присваивания переменной v в начале этого выражения.

5.3.3.21Общие правила для выражений с внедренными выражениями

Указанные ниже правила применяются к следующим видам выражений: выражения со скобками (§7.6.3), выражения доступа к элементам (§7.6.6), выражения базового доступа с индексацией (§7.6.8), выражения приращения и уменьшения (§7.6.9, §7.7.5), выражения приведения (§7.7.6), унарные выражения +, -, ~, *, двоичные выражения +, -, *, /, %, <<, >>, <, <=, >, >=, ==, !=, is, as, &, |, ^ (§7.8, §7.9, §7.10, §7.11), составные выражения присваивания (§7.17.2), выражения checked и unchecked (§7.6.12), а также выражения создания массивов и делегатов (§7.6.10).

Каждое из этих выражений имеет одно или несколько вложенных выражений, которые подлежат безусловному вычислению в фиксированном порядке. Например, в двоичном операторе % сначала вычисляется левая сторона оператора, а затем — правая сторона. В операции индексирования вычисляется индексированное выражение, а затем вычисляется каждое из выражений индекса в порядке слева направо. Выражение expr, которое имеет вложенные выражения expr1, expr2, ..., exprn, вычисляется в следующем порядке:

  • Состояние определенного присваивания переменной v в начале выражения expr1 соответствует состоянию определенного присваивания в начале выражения expr.

  • Состояние определенного присваивания переменной v в начале выражения expri (i больше единицы) соответствует состоянию определенного присваивания в конце выражения expri-1.

  • Состояние определенного присваивания переменной v в конце выражения expr соответствует состоянию определенного присваивания в конце выражения exprn.

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