为什么IPAddress
构造函数Int64
代替UInt32
?根据Reflector,地址存储为Int64
internal(m_Address
),构造函数将其验证为在有效范围内UInt32
.所以我只是好奇为什么它使用Int64
而不是UInt32
.
在任何人说IPv6之前.. IPv6比Int64
一个数组更大并存储UInt16
.该Int64
构造函数只用于生成IPv4地址.
可能是因为在公共语言基础结构(CLI)标准的公共语言规范(CLS)中,语言不需要支持无符号类型,因此它们使用最小的符号类型来保存所有可能的无符号值.
.NET Framework类库包含与编译器使用的原始数据类型相对应的类型.这些类型的,以下是符合CLS: ,
Byte
,Int16
,Int32
,Int64
,Single
,Double
,Boolean
,Char
,Decimal
,IntPtr
和String
.