在VB.NET中实例化类时,将项添加到setterless集合属性?

时间:2013-07-24 22:01:39

标签: vb.net collections instantiation

假设您的类具有不包含setter的collection属性。

是否可以在实例化类时向此集合属性添加项目?

基本上,我正在尝试找到另一种语法来完成以下一行:

dim someClass = New SomeClass() With
{
  .SomePropertyWithoutASetter = New List(Of int) From
  {
    1,
    2,
    3
  }
}

当然,你不能做上面因为没有setter - 你只能通过这样做来添加东西给someClass.SomePropertyWIthoutASetter:

someClass.SomePropertyWIthoutASetter.Add(4);

然而,我真的需要能够在一条线上完成所有这一切(不要问为什么 - 长篇故事)。这实际上是可能的吗?

2 个答案:

答案 0 :(得分:0)

在构造函数中添加它。

Dim someclass As New SomeClass(4)

自定义类:

Public Class SomeClass
  Private ints As New List(Of Integer)
  Sub New(int As Integer)
    ints.Add(int)
  End Sub
...
End Class

答案 1 :(得分:0)

如果您拥有的课程是可继承的,请尝试以下

Public Class NewClassName
    Inherits SomeClass

    Sub New(ByVal Value As Integer)
        MyBase.SomePropertyWIthoutASetter.Add(Value)
    End Sub

End Class

这个新类将公开它继承的类的所有方法,属性等,并且还将根据您的需要使用构造函数。