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

2.4.3Ключевые слова

Ключевое слово — это подобная идентификатору зарезервированная последовательность символов. Ключевое слово нельзя использовать в качестве идентификатора за исключением его использования с префиксом «@».

ключевое_слово: одно из следующих: abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while

В некоторых положениях грамматики особые идентификаторы имеют особое значение, но не являются ключевыми словами. Такие идентификаторы иногда называются «контекстными ключевыми словами». Например, в объявлении свойства идентификаторы «get» и «set» имеют особое значение (§10.7.2). Идентификатор, отличный от get или set, никогда не разрешается в этих положениях, поэтому такое использование не приводит к конфликту с использованием этих слов в качестве идентификаторов. В других случаях, как, например, с идентификатором «var» в объявлениях с неявно введенной локальной переменной (§8.5.1), контекстное ключевое слово может конфликтовать с объявленными именами. Тогда объявленное имя получает приоритет над использованием идентификатора в качестве контекстного ключевого слова.

2.4.4Литералы

Литерал — это представление значения в исходном коде.

литерал: логический_литерал целочисленный_литерал действительный_литерал символьный_литерал строковый_литерал литерал_null

2.4.4.1Логические литералы

Существуют два значения логического литерала: true и false.

логический_литерал: true false

Логический_литерал имеет тип bool.

2.4.4.2Целочисленные литералы

Целочисленные литералы используются для записи значений, имеющих тип int, uint, long и ulong. Целочисленные литералы имеют две возможных формы: десятичную и шестнадцатеричную.

целочисленный_литерал: десятичный_целочисленный_литерал шестнадцатеричный_целочисленный_литерал

десятичный_целочисленный_литерал: десятичные_цифры суффикс_целочисленного_типанеобязательно

десятичные_цифры: десятичная_цифра десятичные_цифры десятичная_цифра

десятичная_цифра: одна из следующих: 0 1 2 3 4 5 6 7 8 9

суффикс_целочисленного_типа: один из следующих: U u L l UL Ul uL ul LU Lu lU lu

шестнадцатеричный_целочисленный_литерал: 0x шестнадцатеричные_цифры суффикс_целочисленного_типанеобязательно 0X шестнадцатеричные_цифры суффикс_целочисленного_типанеобязательно

шестнадцатеричные_цифры: шестнадцатеричная_цифра шестнадцатеричные_цифры шестандцатеричная_цифра

16_р_цифра: одно из 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

Тип целочисленного литерала определяется следующим образом:

  • если литерал без суффикса, его тип — первый из этих типов, в которых его значение может быть представлено: int, uint, long и ulong;

  • если литерал с суффиксом U или u, его тип — первый из этих типов, в которых его значение может быть представлено: uint и ulong;

  • если литерал с суффиксом L или l, его тип — первый из этих типов, в которых его значение может быть представлено: long и ulong;

  • если литерал с суффиксом UL, Ul, uL, ul, LU, Lu, lU или lu, его тип ulong.

Если представленное целочисленным литералом значение находится за пределами диапазона типа ulong, выдается ошибка времени компиляции.

Рекомендуется использовать «L» вместо «l» при записи литералов типа long, так как букву «l» легко спутать с цифрой «1».

Для записи минимально возможных значений int и long в виде десятичных целочисленных литералов существуют следующие два правила:

  • если десятичный_целочисленный_литерал со значением 2147483648 (231) и без суффикса_целочисленного_типа появляется в качестве лексемы, непосредственно следующей за лексемой оператора унарного минуса (§7.7.2), результатом является константа типа int со значением −2147483648 (−231). In all other situations, such a decimal-integer-literal is of type uint.

  • если десятичный_целочисленный_литерал со значением 9223372036854775808 (263) и без суффикса_целочисленного_типа или с суффиксом_целочисленного_типа L или l появляется в качестве лексемы, непосредственно следующей за лексемой оператора унарного минуса (§7.7.2), результатом является константа типа long со значением −9223372036854775808 (−263). In all other situations, such a decimal-integer-literal is of type ulong.

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