代码之家  ›  专栏  ›  技术社区  ›  Samuel Neff

为什么ipaddress构造函数采用int64而不是uint32?

  •  8
  • Samuel Neff  · 技术社区  · 16 年前

    为什么 IPAddress 建造师接受 Int64 而不是 UInt32 ?根据Reflector,地址存储为 英特64 内部( m_Address )构造函数验证它是否在有效范围内 UIT32 . 所以我只是好奇为什么它会 英特64 而不是 uint32号 .

    在别人说ipv6之前……ipv6大于 英特64 并以数组形式存储 UInt16 . 这个 英特64 构造函数仅用于生成IPv4地址。

    1 回复  |  直到 16 年前
        1
  •  12
  •   Michael Burr    16 年前

    可能是因为在 Common Language Specification (CLS) 在公共语言基础结构(CLI)标准中,无符号类型不需要语言支持,因此它们使用最小的有符号类型来保存所有可能的无符号值。

    .NET框架类库包含与编译器使用的基元数据类型相对应的类型。在这些类型中,以下是符合CLS的: Byte ,请 Int16 ,请 Int32 , Int64 , Single , Double , Boolean , Char , Decimal , IntPtr ,和 String .