我尝试将IP地址转换为uint:
IPAddress requstedIpAddress;
uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address;
Run Code Online (Sandbox Code Playgroud)
得到了这个警告:
'System.Net.IPAddress.Address'已废弃:'此属性已被弃用.它是地址族依赖的.请使用IPAddress.Equals方法执行比较.
它是什么意思,我应该用其他方式来做到这一点?
弃用警告告诉您,在已IPAddress定义的库的下一次更新中,将不再具有IPAddress.Address属性.因此,在下次更新库之后,您的代码将无法编译.
如果您转到IPAddress.Address的文档,它会注意到该属性已过时,而应使用IPAddress.GetAddressBytes.
弃用的IPAddress.Address原因是采用了128位的IPv6,而C#类型long(实际上是System.Int64)只有64位.