Hi,
ich habe folgendes problem:
Ich habe einen Typ, welcher einen vorher definierten Struct hält.
Der Struct hat natürlich auch Member.
Möchte ich nun bei der Instanz meines Typs einen member des Structs überschreiben, bekomme ich folgende meldung:
Dieses problem ist Redundant zu diesem hier, welches ich gegoogelt habe:
Link zu MSDN Social
Die dort angegebene Lösung funktioniert auch bei mir, nur scheint es mir ein wenig umständlich. Gibt es dort einfacheren und schöneren Weg, unter der Vorraussetzung, den Struct zu behalten?
Spoiler anzeigen
ich habe folgendes problem:
Ich habe einen Typ, welcher einen vorher definierten Struct hält.
Der Struct hat natürlich auch Member.
Möchte ich nun bei der Instanz meines Typs einen member des Structs überschreiben, bekomme ich folgende meldung:
Expression is a value and therefore cannot be the target of an assignment
Dieses problem ist Redundant zu diesem hier, welches ich gegoogelt habe:
Link zu MSDN Social
Die dort angegebene Lösung funktioniert auch bei mir, nur scheint es mir ein wenig umständlich. Gibt es dort einfacheren und schöneren Weg, unter der Vorraussetzung, den Struct zu behalten?
VB.NET-Quellcode
- <DataContract()>
- <Serializable()>
- Public Structure UserSettings
- ' Betroffener Member
- <DataMember(IsRequired:=True)>
- Public Property KeySetting As String
- <DataMember(IsRequired:=True)>
- Public Shared ReadOnly [Default] As UserSettings
- End Structure
- ' Function an anderer Stelle:
- Dim retVal As New ManagerResultBase(Of UserSettings) 'ManagerResult hält eine Instanz eines anderen Typs sowie einen Member Of T
- ' So funktioniert es:
- Dim settingCopy As UserSettings = retVal.ManagerResponse 'Managerresponse ist der mit dem Typ T initialisierte Wert
- settingCopy.KeySetting = GetValueOrDefault(dv, "KeySettings", defaultUs.KeySetting) 'StringValue der Zugewiesen werden soll
- retVal.ManagerResponse = settingCopy
- 'SO funktioniert es nicht:
- retVal.ManagerResponse.KeySetting = GetValueOrDefault(dv, "KeySettings", defaultUs.KeySetting) 'GetValueOrDefault gibt einen String-Value zurück