空引用可能会导致运行时

时间:2017-02-03 10:36:32

标签: vb.net

Dim policy_key() As RenewalClaim.PolicyKeyType
policy_key(0).policyEffectiveDt = date_format_string(ld_EffectiveDate)

在Line2获取错误。

  

发生错误 - 未将对象引用设置为对象的实例。

2 个答案:

答案 0 :(得分:0)

对象数组的每个元素也需要声明为新对象。

Dim policy_key() As RenewalClaim.PolicyKeyType
Redim policy_key(0)
policy_Key(0) = new RenewalClaim.PolicyKeyType
policy_key(0).policyEffectiveDt = date_format_string(ld_EffectiveDate)

快速提示:当声明类结构等时,命名它们是有用的,这样你就可以看到它们是什么类型....

e.g。 类的cls_Policy_Key

str_Policy_Key用于结构等。

当你在一年后回到你的代码时......你会感谢你这样做。

答案 1 :(得分:0)

Dim policy_key() As RenewalClaim.PolicyKeyType 

是您问题的一部分。当您声明policy_key()时,实际上您将其声明为没有元素的数组。如果您不特别需要使用数组,例如,如果您不需要将对象添加到特定元素编号,那么您最好使用列表并将其声明为此

Dim policy_key As New List(Of RenewalClaim.PolicyKeyType)

通过这种方式,您可以轻松添加项目,而无需每次调整数组大小 - 代码比Trevor的答案要长一些,但在扩展代码时不容易出错 -

dim newPolicy_Key as RenewalClaim.PolicyKeyType
newPolicy_Key.policyEffectiveDt = date_format_string(ld_EffectiveDate)
policy_Key.add(newPolicyKey)