繁体   English   中英

为什么Int64.MaxValue返回Long?

[英]Why does Int64.MaxValue return a Long?

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

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

因为Int64和long是同一类型。

Int64 = long    
Int32 = int    
Int16 = short

long只是Int64的别名。 看到这里

从语言规范:

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

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

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

从4.1.4开始:

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

Reserved word Aliased type
long          System.Int64

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM