メソッドIPAddress(Int64)
とメソッドInt32 HostToNetworkOrder(Int32)
はSystem.Net.IPAddress
両方とも、IP アドレスに署名付きの型を使用します。
HostToNetworkOrder
これにより、コンストラクターへのパラメーターとして使用するときに結果をキャストする必要がIPAddress
生じ、次のようなコードになります。
UInt32 netOrderU32 = (UInt32)IPAddress.HostToNetworkOrder((Int32)ipVal);
IPAddress tempIP = new IPAddress(netOrderU32);
network-order 値が unsigned でない場合、192.168.0.255 などのアドレスで ArgumentOutOfRangeException が発生します。IPAddress(Int64)
これは、0x00000000FFFFFFFF よりも大きい値を受け入れないこと が原因である可能性がありますが、(net-order)192.168.0.255 の Int64 表現は、 Int32 からの変換時に 0xffffffffff00a8c0 になりますか?
IPアドレスに署名の概念がない場合でも、署名されたタイプを使用することに意味はありますか? 符号なしの型を使用する方がはるかに簡単なようです。
署名された型が選択された特定の理由はありますか?