Why is Int64.MaxValue a long?
本问题已经有最佳答案,请猛点这里访问。
它不应该是整数类型吗?
这样,一些使用int的函数无法接受它作为参数,因为它返回一个long,但它们期望一个int
在.NET中,所有基元类型和一些标准化类型都有通用的内置类型别名。每个别名对应一个实际的.NET类型,别名和类型名都可以互换使用。
这是C中的一些别名的列表。其他.NET语言,可能对同一类型使用不同的别名(与vb.net类似)
1 2 3 4 5 6 | byte -> System.Byte short -> System.Int16 int -> System.Int32 long -> System.Int64 string -> System.String ... |
如您所见,
.NET对某些类型使用类型别名。这意味着类型别名与它的相对值类型完全等效。从下面的列表中可以看到,System.Int64的类型别名是"long"。这是.NET中类型别名的完整列表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Alias | Relative Data Type byte | System.Byte sbyte | System.SByte short | System.Int16 ushort | System.UInt16 int | System.Int32 uint | System.UInt32 long | System.Int64 ulong | System.UInt64 float | System.Single double | System.Double decimal | System.Decimal string | System.String bool | System.Boolean object | System.Object |
Long == Int64 >>Output: True
Int == Int32 >>Output: True
Int64 == Int32 >>Output: False
如果long/int64足够小,则只能将其转换为int/int32,但始终可以将int转换为long。int64/long支持大于或小于标准int的数字。