Ich habe die folgenden zwei Strukturen, und ich weiß nicht wirklich verstehen, warum die zweiten nicht funktioniert:Eigenschaften in Strukturen: "Ausdruck ist ein Wert und kann daher nicht das Ziel einer Zuweisung sein."
Module Module1
Sub Main()
Dim myHuman As HumanStruct
myHuman.Left.Length = 70
myHuman.Right.Length = 70
Dim myHuman1 As HumanStruct1
myHuman1.Left.Length = 70
myHuman1.Right.Length = 70
End Sub
Structure HandStruct
Dim Length As Integer
End Structure
Structure HumanStruct
Dim Left As HandStruct
Dim Right As HandStruct
End Structure
Structure HumanStruct1
Dim Left As HandStruct
Private _Right As HandStruct
Public Property Right As HandStruct
Get
Return _Right
End Get
Set(value As HandStruct)
_Right = value
End Set
End Property
End Structure
End Module
Detailliertere Erklärung: Ich habe einigen veralteten Code, Strukturen verwendet statt Klassen. Also muss ich einen Moment identifizieren, wenn sich ein Feld dieser Struktur auf den falschen Wert ändert.
Meine Lösung zum Debugging war, die Struktur durch eine Eigenschaft mit dem gleichen Namen ersetzt zu ersetzen, und dann habe ich gerade einen Breakpunkt im Property Setter gesetzt, um den Moment zu identifizieren, wenn ich den falschen Wert erhalte ... um das nicht zu tun den gesamten Code neu schreiben .... nur zum Debuggen.
Jetzt habe ich das oben genannte Problem, also weiß ich nicht, was zu tun ist ... nur den Haltepunkt überall dort, wo dieses Mitglied der Struktur zugewiesen ist, aber es gibt viele Linien mit dieser Zuordnung ...
danke, Kevin. Ich habe eine kleine Erklärung hinzugefügt, warum ich diese Tests gemacht habe. – serhio
@serhio Kein Problem, es kommt immer wieder vor, wenn Eigenschaften aus Struct-Typen gemacht werden (wie zum Beispiel 'TimeSpan'). IIRC war früher kein Kompilierfehler und würde einfach nicht funktionieren, was wahrscheinlich noch frustrierender war. –
der Getter gibt eine Kopie dieser Struktur zurück ... könnte ich es zwingen "byref"?) – serhio