我正在 VB.net 中寻找“安全”点符号。在 VB.NET 或任何语言中是否存在这样的东西?我想要做的是,当使用不可为空遗留对象,解决如下问题:
“如果有一个计划,如果有一个案例,如果它有一个人,那个人的配偶,否则什么都没有(VBS表示“空”)。”
并避免这样做:
Dim Spouse as Person = Nothing
if Case.Plan isnot nothing then
if Case.Plan.Person isnot Nothing
Spouse = Case.Plan.Person.Spouse
end if
end if
并执行以下操作:
Dim Spouse as Person = Case~Plan~Person~Spouse
Where '~'
是我所寻求的“安全”点符号,它在遇到第一个空对象时立即返回空值而不是抛出异常?
当然这个问题更常见:
dim MyVar as string = XMLDoc.DocumentElement.SelectSingleNode("Name").InnerText
当 Name 不存在时,想要 Nothing 而不是异常。
Edit:
有没有办法使用来解决这个问题LINQ用于对象还是 LINQ for XML?
VB.NET 14 引入了空条件 https://msdn.microsoft.com/en-us/library/dn986595.aspx运营商来解决这个问题。该运算符也是短路的。
Dim Spouse as Person = Case?.Plan?.Person?.Spouse
用于在执行成员访问 (?.) 或索引 (?[) 操作之前测试 null。这些运算符可帮助您编写更少的代码来处理空检查,尤其是深入到数据结构时。
同样的事情在 C# 中也适用:
Person spouse = Case?.Plan?.Person?.Spouse;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)