У меня есть класс, который мы будем называть MyClass. Внутри у меня есть некоторый код десериализации, который я хочу иметь возможность вызвать изнутри объекта. Есть ли более чистый способ присвоить значения, связанные с классом, внутри класса. Вот что я делаю сейчасНазначить значение экземпляру текущего класса
Public Class MyClass
Public Property Prop1 as New String(String.empty)
Public Property Prop2 as New String(String.empty)
Public Property Prop3 as Boolean = False
Public Sub LoadXML(ByVal XMLText as String)
Dim MyTemp as New MyClass
MyTemp = CType(DeSerialize(XMLText, MyTemp.Type), MyClass) 'this returns an object
Me.Prop1 = MyTemp.Prop1
Me.Prop2 = MyTemp.Prop2
Me.Prop3 = MyTemp.Prop3
End Sub
End Class
Я не могу присвоить результат MyTemp к Me (которые якобы представляют один и тот же тип объекта), но я могу присвоить все свойства из MyTemp до Недвижимость от Me. Поскольку мой фактический класс намного сложнее (я использовал примитивы в примере), но на самом деле это довольно большой класс со свойствами, которые являются многими другими классами), я задавался вопросом, есть ли лучший способ присвоить значение MyTemp экземпляр класса.
В чем смысл 'MyTemp'? Поскольку XML уже представляет объект MyClass, почему бы просто не создать его напрямую, а не перекочевать через свойство temp object по свойству? – Plutonix
@Plutonix, я не уверен, что вы подразумеваете под «... XML уже представляет объект MyClass ...» - XML - это тип String, который передается в подгрузку LoadXML. Цель MyTemp - создать объект, который является эквивалентом Me. Поскольку вы не можете сделать что-то вроде: «Me = CType (DeSerialize (XMLText, Me.Type), MyClass)» - я вынужден создать временную, а затем перекличку с помощью свойств верхнего уровня. Это выглядит глупо, но именно поэтому я поднял эту проблему. –