var默认为哪种int类型?
可能重复:
C#short / long / int文字格式?
阅读编程中var
的使用,我很好奇var用于int
类型时的默认值。 例如,如果我使用
var foo = 65535
类型是ushort
还是int
? 谢谢。
真的,你问的是C#中整数文字的类型是什么? ,答案可以在规范中找到:
(4.0规范的2.4.4.2节)
整数文字的类型确定如下:
- 如果文字没有后缀,则它具有这些类型中的第一个,其值可以表示为:int,uint,long,ulong。
- 如果文字后缀为U或u,则它具有这些类型中的第一个,其值可以表示为:uint,ulong。
- 如果文字后缀为L或l,则它具有这些类型中的第一个,其值可以表示为:long,ulong。
- 如果文字后缀为UL,U1,uL,ul,LU,Lu,lU或lu,则其类型为ulong。
如果整数文字表示的值超出ulong类型的范围,则会发生编译时错误。
所有整数文字都是int
类型,因此除非您在结尾处强制转换或添加显式类型限定符,否则您的变量将为int
:
var quick = 65535; // int var brown = (ushort)65535; // ushort var fox = 65535L; // long