数字后面的字母叫什么?

34
这叫什么名字?
double  d1 = 0d;
decimal d2 = 0L;
float   d3 = 0f;

我应该在哪里找到可以使用的字符参考?如果我想将 0 强制转换为 short,我需要哪个字母?


不是官方列表,但这很有用:http://www.dotnetperls.com/suffix - Flynn1179
我相信你需要的是"数字字面量"。而(short)0则可以为您进行强制转换。 - Brad Christie
5个回答

38
最好的参考资料是C#规范,特别是章节Literals
相关内容如下:
整数字面量的类型如下所示:
- 如果字面量没有后缀,它将使用以下类型中第一个能够表示其值的类型:intuintlongulong。 - 如果字面量带有“U”或“u”的后缀,则使用以下类型中第一个能够表示其值的类型:uintulong。 - 如果字面量带有“L”或“l”的后缀,则使用以下类型中第一个能够表示其值的类型:longulong。 - 如果字面量带有“UL”、“Ul”、“uL”、“ul”、“LU”、“Lu”、“lU”或“lu”的后缀,则为ulong类型。
如果未指定实型字首,则实型字面量的类型为double。否则,实型字首决定实型字面量的类型,如下所示:
- 带“F”或“f”后缀的实型字面量为float类型。 - 带“D”或“d”后缀的实型字面量为double类型。 - 带“M”或“m”后缀的实型字面量为decimal类型。
这意味着字母(或字母组合)被称为“后缀”。这种方式无法表示short类型,因此必须使用(short)0或者只需使用short x = 0;

18

它被称为后缀。
可以在此处找到概述


10

这个

double  d1 = 0d;

这是一个字面量的示例,数字后面的字符是一个后缀。但short没有这样的后缀。你需要进行类型转换:

short s = (short)0;

这些定义在语言规范的2.4.4中,具体来说,在2.4.4.2中,您将了解有关整数字面值的信息,其中您将看到没有办法使用字面量表示short。此外,integer-type-suffix如下:

U  u  L  l  UL  Ul  uL  ul  LU  Lu  lU  lu

这些代表不同有符号/无符号的int/long类型。同样,没有一种方式可以使用字面量来表示short


2
-1:它们不叫字面量,而是称为后缀。字面量是包括后缀在内的完整数字。 - Daniel Hilgarth
@Daniel Hilgarth:显然他只是想使用字面量来表示一个“short”,因此我解释了更大的概念。感谢你至少解释了一下。 - jason

1
您可以在以下链接中找到字面量的参考:

http://msdn.microsoft.com/en-us/library/aa664672(v=VS.71).aspx

只有数字后面的字母被称为后缀。

没有专门用于短的后缀。

这些仅是值字面量,以便您可以区分不同类型的值。当您进行强制转换时,使用常规的转换方法。


-1

似乎我误解了这个问题。 - Matteo Mosca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接