IPAddress ip = IPAddress.Parse(((this.Tag as TreeNode).Tag as ClassUserInfo).UserIP);
请问as是转换吗
((this.Tag as TreeNode).Tag as ClassUserInfo).UserIP 这个是什么意思
as 一般是安全转换为特定类型的时候使用
比如你确认Tag的实际类型只可能是TreeNode或者TreeNode的子类的时候,可以使用as 转化为TreeNode
你的Tag可能是object类型,但是你确认你存入的时候传入的是TreeNode类型,你可以直接使用as来安全转化为TreeNode
但是如果你使用(TreeNode)Tag来强制转换,比如Tag类型实际不是TreeNode,可能会导致异常。但是as不会,最多转为null
所以你上面的代码为了安全起见,应该加问号,防止null值
var ipAddress=(this.Tag as TreeNode)?.Tag as ClassUserInfo)?.UserIP;
IPAddress ip=IPAddress.Parse(((this.Tag as TreeNode)?.Tag as ClassUserInfo)?.UserIP);
非常感谢
是转换,将 Tag 转换为 TreeNode ,然后将 TreeNode 的 Tag 转为 ClassUserInfo ,最后获取 ClassUserInfo 的 UserIP
非常感谢