var默认为哪种int类型?

时间:2012-10-19 14:15:02

标签: c#

  

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

Reading在编程中使用var,我很好奇var用于int类型时的默认值。例如,如果我使用

var foo = 65535

类型为ushort还是int?感谢。

2 个答案:

答案 0 :(得分: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类型,发生编译时错误。

答案 1 :(得分:6)

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

var quick = 65535;         // int
var brown = (ushort)65535; // ushort
var fox = 65535L;          // long