gpt4 book ai didi

vb.net - 空引用不计算为空

转载 作者:行者123 更新时间:2023-12-02 06:38:26 25 4
gpt4 key购买 nike

我试图在获取对象的值之前测试对象是否为空,但出现错误“NullReferenceException”

出现在这里的第一行:

If Not ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName Is Nothing Then
li.FullName = ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName.GetValue()
End If

System.NullReferenceException{“对象引用未设置到对象的实例。”}

我如何测试这个,而不仅仅是在 try/catch 中处理错误?

最佳答案

涉及的对象比较多,可以什么都不是:

  • ORInvoiceLineRet 可以是空的
  • ORInvoiceLineRet.InvoiceLineRet 可以什么都没有
  • ORInvoiceLineRet.InvoiceLineRet.ItemRef 可以什么都没有
  • ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName 可以什么都没有

所以这里唯一安全的方法是:

If ORInvoiceLineRet IsNot Nothing _
AndAlso ORInvoiceLineRet.InvoiceLineRet IsNot Nothing _
AndAlso ORInvoiceLineRet.InvoiceLineRet.ItemRef IsNot Nothing _
AndAlso ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName IsNot Nothing Then
li.FullName = ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName.GetValue()
End If

关于vb.net - 空引用不计算为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801687/

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