Как установить атрибуты класса в vb.net? - PullRequest
2 голосов
/ 07 октября 2011

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

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Вы можете сделать это, используя объекты DLR и Dynamic, как показано в 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

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

1 голос
/ 07 октября 2011

В 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 
...