C# System.Net.IPAddress.Address';已经过时了

C# System.Net.IPAddress.Address';已经过时了,c#,ip-address,C#,Ip Address,我尝试将Ip地址转换为uint: IPAddress requstedIpAddress; uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address; 得到了这个警告: “System.Net.IPAddress.Address”已过时:“此属性已被删除。” 不赞成。它依赖于家庭。请使用 IPAddress.Equals方法来执行比较 这是什么意思?我应该用其他方法来做吗?弃

我尝试将Ip地址转换为
uint

IPAddress requstedIpAddress;
uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address;
得到了这个警告:

“System.Net.IPAddress.Address”已过时:“此属性已被删除。” 不赞成。它依赖于家庭。请使用 IPAddress.Equals方法来执行比较


这是什么意思?我应该用其他方法来做吗?

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

如果查看文档,请注意该属性已过时,应改为使用


IPAddress.Address
的弃用是由于采用了128位的IPv6,而C#type
long
实际上是一个,仅为64位。

您导入的所有库都是什么?IPv6地址不适合
uint
。此地址的可能重复项应提供与上面相同的结果,而不会出现警告,uint requesteIpAddressUint=BitConverter.ToUInt32(requstedIpAddress.GetAddressBytes(),0);虽然它只适用于IPv4。所以最好使用IPAddress.GetAddressBytes,如果我有IPv^地址呢?
IPAddress.GetAddressBytes
返回
bytes[]
,这样它就可以支持IP地址v4和v6以及可能的下一个迭代,尽管这在一段时间内不太可能实现。