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 是否可能 - 如果是,请解释如何?
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 是否可能 - 如果是,请解释如何?
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
您可以通过使用 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
这接近你想要的。