为什么Int64.MaxValue返回Long?

时间:2011-11-02 14:24:27

标签: c# .net design-patterns architecture

嗯那是具有讽刺意味,今天玩的时候我想知道是否可以在某种程度上增加Int64.MaxValue,并且刚刚建立了Int64.MaxValue不是Int64而是Long。

为什么会这样,如果我像Int64 myInt = Int64.MaxValue;那样存储比myInt仍然是一个Int或者它将变成一个Long,那么在这个字段存储一个Long而不是Int64的目的是什么意思

6 个答案:

答案 0 :(得分:16)

因为Int64和long是同一类型。

Int64 = long    
Int32 = int    
Int16 = short

答案 1 :(得分:9)

答案 2 :(得分:3)

long只是Int64的别名。见here

答案 3 :(得分:3)

来自语言规范:

  

简单类型的成员直接对应于简单类型别名的结构类型的成员:

     

long的成员是System.Int64结构的成员。

您可以在§3.4.2中看到其他别名。

从4.1.4开始:

  

C#提供了一组称为简单类型的预定义结构类型。简单类型通过保留字标识,但这些保留字只是System命名空间中预定义结构类型的别名,如下表所示。

Reserved word Aliased type
long          System.Int64

答案 4 :(得分:2)

Int64很长:

        Type t1 = typeof(Int64);
        Type t2 = typeof(long);
        bool same = t1.Equals(t2);  // true

查看MSDN:

http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx

答案 5 :(得分:0)

Int16Int32Int64分别别名为shortintlong。请注意,该数字是用于存储值的位数。