int
literals are defined by simply using integral values within the range of int
:
int i = 5;
uint
literals are defined by using the suffix U
or u
, or by using an integral values within the range of uint
:
uint ui = 5U;
string
literals are defined by wrapping the value with double-quotes "
:
string s = "hello, this is a string literal";
String literals may contain escape sequences. See String Escape Sequences
Additionally, C# supports verbatim string literals (See Verbatim Strings). These are defined by wrapping the value with double-quotes "
, and prepending it with @
. Escape sequences are ignored in verbatim string literals, and all whitespace characters are included:
string s = @"The path is:
C:\Windows\System32";
//The backslashes and newline are included in the string
char
literals are defined by wrapping the value with single-quotes '
:
char c = 'h';
Character literals may contain escape sequences. See String Escape Sequences
A character literal must be exactly one character long (after all escape sequences have been evaluated). Empty character literals are not valid. The default character (returned by default(char)
or new char()
) is '\0'
, or the NULL character (not to be confused with the null
literal and null references).
byte
type has no literal suffix. Integer literals are implicitly converted from int
:
byte b = 127;
sbyte
type has no literal suffix. Integer literals are implicitly converted from int
:
sbyte sb = 127;
decimal
literals are defined by using the suffix M or m on a real number:
decimal m = 30.5M;
double
literals are defined by using the suffix D or d, or by using a real number:
double d = 30.5D;
float
literals are defined by using the suffix F or f, or by using a real number:
float f = 30.5F;
long
literals are defined by using the suffix L
or l
, or by using an integral values within the range of long
:
long l = 5L;
ulong
literals are defined by using the suffix UL
, ul
, Ul
, uL
, LU
, lu
, Lu
, or lU
, or by using an integral values within the range of ulong
:
ulong ul = 5UL;
short
type has no literal. Integer literals are implicitly converted from int
:
short s = 127;
ushort
type has no literal suffix. Integer literals are implicitly converted from int
:
ushort us = 127;
bool
literals are either true
or false
;
bool b = true;
@
null