0

假设您有一个具有不包含 setter 的集合属性的类。

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

基本上,我试图找到一种替代语法来在一行中完成以下操作:

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

当然,您不能执行上述操作,因为没有 setter - 您只能通过执行以下操作向 someClass.SomePropertyWIthoutASetter 添加内容:

someClass.SomePropertyWIthoutASetter.Add(4);

但是,我真的需要能够在一行中完成所有操作(不要问为什么 - 长篇大论)。这真的可能吗?

4

2 回答 2

0

如果您拥有的类是可继承的,请尝试以下操作

Public Class NewClassName
    Inherits SomeClass

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

End Class

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

于 2013-07-24T23:08:18.677 回答
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
于 2013-07-24T22:31:46.210 回答