2

Python 可以setattr为任何类动态设置公共属性。

那么,如何用 VB.net 做到这一点?

我是说 :

Public Class abc
  ...
End Class

' Set it as :
abc.setattr("prop", 5)

' Use it as :
Dim ob As New abc
value = abc.prop

VB.net 是否可能 - 如果是,请解释如何?

4

2 回答 2

1

VB.NET 中没有这样的功能。您必须手动定义属性。

例如 -匿名类型。

Dim obj = New With {.No = 10, .Name = ""}
obj.Name = "Mr.X"

或者

命名类型

 Public Class Abc
     Public Property No As Integer
     Public Property Name As String
 End Class 
于 2011-10-07T07:15:21.120 回答
1

您可以通过使用 DLR 和 AVD 所示的动态对象来做到这一点。

然而,像impromptu -interface这样的东西会让你更容易。这是一个关于它的博客。

Dim c As Object = Builder.[New]()
Dim abc = c.abc(New With {.prop = 5})

或者

Dim c As Object = Builder.[New]()
Dim abc = c.abc
abc.("prop") = 5

这接近你想要的。

于 2011-10-07T07:43:05.950 回答