What is this called?
double d1 = 0d;
decimal d2 = 0L;
float d3 = 0f;
And where can I find a reference of characters I can use? If I want to cast 0
to short
, which letter I need?
What is this called?
double d1 = 0d;
decimal d2 = 0L;
float d3 = 0f;
And where can I find a reference of characters I can use? If I want to cast 0
to short
, which letter I need?
The best source is the C# specification, specifically section Literals.
The relevant bits:
The type of an integer literal is determined as follows:
- If the literal has no suffix, it has the first of these types in which its value can be represented:
int
,uint
,long
,ulong
.- If the literal is suffixed by U or u, it has the first of these types in which its value can be represented:
uint
,ulong
.- If the literal is suffixed by L or l, it has the first of these types in which its value can be represented:
long
,ulong
.- If the literal is suffixed by UL, Ul, uL, ul, LU, Lu, lU, or lu, it is of type
ulong
.If no real_type_suffix is specified, the type of the real literal is
double
. Otherwise, the real type suffix determines the type of the real literal, as follows:
A real literal suffixed by F or f is of type
float
. […]A real literal suffixed by D or d is of type
double
. […]A real literal suffixed by M or m is of type
decimal
. […]
That means the letter (or letters) is called “suffix”. There is no way to represent short
this way, so you have to use (short)0
, or just short x = 0;
.