System.Net.IPAddress.Address'已过时

mar*_*yer 6 c# ip-address

我尝试将IP地址转换为uint:

IPAddress requstedIpAddress;
uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address;
Run Code Online (Sandbox Code Playgroud)

得到了这个警告:

'System.Net.IPAddress.Address'已废弃:'此属性已被弃用.它是地址族依赖的.请使用IPAddress.Equals方法执行比较.

它是什么意思,我应该用其他方式来做到这一点?

Nad*_*far 6

弃用警告告诉您,在已IPAddress定义的库的下一次更新中,将不再具有IPAddress.Address属性.因此,在下次更新库之后,您的代码将无法编译.

如果您转到IPAddress.Address的文档,它会注意到该属性已过时,而应使用IPAddress.GetAddressBytes.

弃用的IPAddress.Address原因是采用了128位的IPv6,而C#类型long(实际上是System.Int64)只有64位.