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有关 - 如果是,请解释如何?
答案 0 :(得分:1)
VB.NET中没有这样的功能。您必须手动定义属性。
例如 - Anonymous types.
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
答案 1 :(得分:1)
您可以使用DLR和AVD显示的动态对象来完成此操作。
然而像impromptu-interface这样的东西会让你更加苛刻。这是关于它的blog。
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
哪个接近你想要的。