Vb.net 空引用可能导致运行时错误

Vb.net 空引用可能导致运行时错误,vb.net,Vb.net,在第2行获取错误 发生错误-对象引用未设置为对象的实例 对象数组的每个元素也需要声明为一个新对象 Dim policy_key() As RenewalClaim.PolicyKeyType policy_key(0).policyEffectiveDt = date_format_string(ld_EffectiveDate) 快速提示:在声明类、结构等时,命名它们非常有用,这样您就可以看到它们是什么类型了 e、 g。 类的cls_策略_键 结构等的str\u策略\u键 当你在一年后回到你

在第2行获取错误

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


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

Dim policy_key() As RenewalClaim.PolicyKeyType
policy_key(0).policyEffectiveDt = date_format_string(ld_EffectiveDate)
快速提示:在声明类、结构等时,命名它们非常有用,这样您就可以看到它们是什么类型了

e、 g。 类的cls_策略_键

结构等的str\u策略\u键

当你在一年后回到你的代码中。。你会感谢自己这么做的

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)
这是你问题的一部分。当您声明policy_key时,实际上是将其声明为一个没有元素的数组。如果您不特别需要使用数组,例如,如果您不需要将对象添加到特定的元素编号,那么最好使用列表并这样声明它

Dim policy_key() As RenewalClaim.PolicyKeyType 
这样,您可以轻松添加项目,而无需每次调整数组大小-代码比Trevor的答案稍长,但在扩展代码时不太容易出错-

Dim policy_key As New List(Of RenewalClaim.PolicyKeyType)

数组的可能副本是webservice的请求参数之一,我必须使用填充元素按原样传递它。所以,你能不能建议我一种方法,把它作为一个数组使用。
dim newPolicy_Key as RenewalClaim.PolicyKeyType
newPolicy_Key.policyEffectiveDt = date_format_string(ld_EffectiveDate)
policy_Key.add(newPolicyKey)