var默认为哪种int类型?

Pio*_*nom 10 c#

可能重复:
C#short/long/int literal格式?

阅读var编程中的使用,我很好奇当var用于某个int类型时var的默认值.例如,如果我使用

var foo = 65535

类型是ushort或只是int?谢谢.

Aak*_*shM 28

真的,你问的是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类型的范围,则会发生编译时错误.


das*_*ght 6

所有整数文字都是类型int,因此int除非您在结尾处强制转换或添加显式类型限定符,否则您的变量将是:

var quick = 65535;         // int
var brown = (ushort)65535; // ushort
var fox = 65535L;          // long
Run Code Online (Sandbox Code Playgroud)