В C# литералами называются постоянные значения, представленные в удобной для восприятия форме. Например, число 100 является литералом. Сами литералы и их назначение настолько понятны, что они применялись во всех предыдущих примерах программ без всяких пояснений. Но теперь настало время дать им формальное объяснение.
В C# литералы могут быть любого простого типа. Представление каждого литерала зависит от конкретного типа. Как пояснялось ранее, символьные литералы заключаются в одинарные кавычки. Например, 'a'
и '%'
являются символьными литералами.
Целочисленные литералы указываются в виде чисел без дробной части. Например, 10
и -100
— это целочисленные литералы. Для обозначения литералов с плавающей точкой требуется указывать десятичную точку и дробную часть числа. Например, 11.123
— это литерал с плавающей точкой. Для вещественных чисел с плавающей точкой в C# допускается также использовать экспоненциальное представление.
У литералов должен быть также конкретный тип, поскольку C# является строго типизированным языком. В этой связи возникает естественный вопрос: к какому типу следует отнести числовой литерал, например 2,123987
или 0.23
? К счастью, для ответа на этот вопрос в C# установлен ряд простых для соблюдения правил.
Во-первых, у целочисленных литералов должен быть самый мелкий целочисленный тип, которым они могут быть представлены, начиная с типа int
. Таким образом, у целочисленных литералов может быть один из следующих типов: int
, uint
, long
или ulong
в зависимости от значения литерала. И во-вторых, литералы с плавающей точкой относятся к типу double
.
Если вас не устраивает используемый по умолчанию тип литерала, вы можете явно указать другой его тип с помощью суффикса. Так, для указания типа long
к литералу присоединяется суффикс l
или L
. Например, 12
— это литерал типа int
, a 12L
— литерал типа long
. Для указания целочисленного типа без знака к литералу присоединяется суффикс u
или U
. Следовательно, 100
— это литерал типа int
, a 100U
— литерал типа uint
. А для указания длинного целочисленного типа без знака к литералу присоединяется суффикс ul
или UL
. Например, 984375UL
— это литерал типа ulong
.
Кроме того, для указания типа float
к литералу присоединяется суффикс F
или f
. Например, 10.19F
— это литерал типа float
. Можете даже указать тип double
, присоединив к литералу суффикс d
или D
, хотя это излишне. Ведь, как упоминалось выше, по умолчанию литералы с плавающей точкой относятся к типу double
.
И наконец, для указания типа decimal
к литералу присоединяется суффикс m
или M
. Например, 9.95M
— это десятичный литерал типа decimal
.
Несмотря на то, что целочисленные литералы образуют по умолчанию значения типа int
, uint
, long
или ulong
, их можно присваивать переменным типаbyte
, sbyte
, short
или ushort
, при условии, что присваиваемое значение может быть представлено целевым типом.
Некоторые возможности вывода | Шестнадцатеричные литералы |