如何在vb.net中将一个类追加到另一个

时间:2018-11-01 16:12:24

标签: vb.net function class exception concat

PropertyPolicy是一个类,定义了几个字段/实体的集合。有时需要两个单独的函数来构建集合。 (LoadEstateAIN和LoadAIN)。我需要结合两个类的结果,但是尝试了concat但得到了强制转换异常。什么会在这里工作?

emailField.sendKeys(Key.BACKSPACE)

1 个答案:

答案 0 :(得分:0)

Concat的结果不是数组;它是IEnumerable(Of T)。在您的情况下,它是IEnumerable(Of Entity)。如果您想将其分配回数组,只需在Concat的末尾添加ToArray()

propTempComb.AINInsured = propTemp1.AINInsured.Concat(propTemp2.AINInsured).ToArray()

破坏这行代码:

[instance3].[property] = [instance1].[property].Concat([instance2].[property])

将Concat的结果分配给该属性,但是该属性是一个数组,因此您需要将IEnumerable(Of Entity)的Concat的结果更改为与ToArray无关紧要的数组。

我可以进一步建议您不要将数组用作公共成员,而应该将其用作IEnumerable。此外,对于某些公共/公共属性,自动属性将是一个更好的选择。

Public Class PropertyPolicy

    Private aininsuredfield As Entity()
    Private claimsfield As Claims()

    Public Property Agent As Entity
    Public Property BillingInfo As BillingInfo
    Public Property CancellationDate As Date

    Public Property AINInsured() As IEnumerable(Of Entity)
        Get
            Return aininsuredfield
        End Get
        Set(value As IEnumerable(Of Entity))
            aininsuredfield = value.ToArray()
        End Set
    End Property

    Public Property Claims() As IEnumerable(Of Claims)
        Get
            Return claimsfield
        End Get
        Set(value As IEnumerable(Of Claims))
            claimsfield = value.ToArray()
        End Set
    End Property

End Class

顺便说一句,这会使您的原始代码在没有ToArray()的情况下工作

propTempComb.AINInsured = propTemp1.AINInsured.Concat(propTemp2.AINInsured)