gpt4 book ai didi

c# - VB.NET 中的“Null-Safe”点符号……或者它是否存在于任何语言中? 'safe dereferencing operator' 或等效使用 LINQ?

转载 作者:行者123 更新时间:2023-12-03 21:39:13 26 4
gpt4 key购买 nike

我正在 VB.net 中寻找“安全”点符号。这样的事情是否存在——在 VB.NET 或任何语言中?我希望能够做的是,在使用 non-nullable 遗留对象时,解决如下问题:

“如果有计划,如果有案例,如果有一个人,那个人的配偶,其他的,什么都没有(VBSpeak for Null)。”

并避免这样做:

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

'~' 是我寻求的“安全”点符号,它在遇到第一个 null 对象时立即返回 null 而不是抛出异常?

这个问题当然更常见:

dim MyVar as string = XMLDoc.DocumentElement.SelectSingleNode("Name").InnerText

并且当 Name 不存在时想要 Nothing 而不是异常。

编辑:

有没有办法使用针对对象的 LINQ 或针对 XML 的 LINQ 来解决这个问题?

最佳答案

VB.NET 14 引入了 null-conditional运营商来解决这个问题。这个运算符也短路了。

Dim Spouse as Person = Case?.Plan?.Person?.Spouse

Used to test for null before performing a member access (?.) or index (?[) operation. These operators help you write less code to handle null checks, especially for descending into data structures.

同样的事情在 C# 中有效:

Person spouse = Case?.Plan?.Person?.Spouse;

关于c# - VB.NET 中的“Null-Safe”点符号……或者它是否存在于任何语言中? 'safe dereferencing operator' 或等效使用 LINQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com