Как установить атрибуты класса в 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 - если да, пожалуйста, объясните, как?


person Yugal Jindle    schedule 07.10.2011    source источник


Ответы (2)


В VB.NET такой возможности нет. Вы должны определить Свойства вручную.

Например - анонимные типы.

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

Or

Именованные типы

 Public Class Abc
     Public Property No As Integer
     Public Property Name As String
 End Class 
person kv-prajapati    schedule 07.10.2011
comment
Вы можете воссоздать setattr в vb, используя отражение - person Joel Coehoorn; 05.02.2012

Вы можете сделать это, используя объекты DLR и Dynamic, такие как AVD.

Однако что-то вроде импровизированного интерфейса упростит вам задачу. Вот об этом блог.

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

or

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

Что близко к тому, что вы хотели.

person chrissie1    schedule 07.10.2011