2011-11-02 50 views
5

嗯这就是讽刺,虽然在今天玩耍,我想知道如果可以在某种方式增加Int64.MaxValue,并刚刚创建Int64.MaxValue不是一个Int64,而是一个长。为什么Int64.MaxValue返回Long?

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

+1

注意:你不能增加或减少MaxValue。它不会限制Int64(或任何其他具有MaxValue的类型),它更多地表明该类型可以有多大。 –

回答

16

因为Int64和long是相同的类型。

Int64 = long  
Int32 = int  
Int16 = short 
3

long仅仅是Int64的别名。见here

0

Int16Int32,并且Int64被混淆为shortintlong分别。请注意,数字是用于存储该值的位数。

3

从语言规范:

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

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

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

而且从4.1.4:

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

Reserved word Aliased type 
long   System.Int64 
+0

+1是第一个引用C#规范的人。 – vcsjones

相关问题