Ho i seguenti 2 strutture, e io non capisco il motivo per cui il secondo non funziona:Proprietà in strutture: "L'espressione è un valore e pertanto non può essere l'obiettivo di un compito."
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
spiegazione più dettagliata: ho qualche codice obsoleto che utilizza strutture invece di classi. Quindi ho bisogno di identificare un momento in cui un archivio di questa struttura cambia al valore sbagliato.
La mia soluzione per eseguire il debug è stata quella di sostituire la struttura archiviata da una proprietà con lo stesso nome e quindi ho appena impostato un punto di interruzione nel setter della proprietà per identificare il momento in cui ricevo il valore sbagliato ... in modo da non riscrivi tutto il codice .... solo per scopi di debug.
Ora, ho affrontato il problema di cui sopra, quindi non so cosa fare ... solo l'impostazione del punto di interruzione in tutto il mondo è stato assegnato a questo utente di struttura, ma c'è un sacco di linee con quella assegnazione ...
grazie, Kevin. Ho aggiunto una piccola spiegazione del perché ho fatto questi test. – serhio
@serhio Nessun problema, è qualcosa che emerge sempre quando si creano proprietà con tipi di struct (come ad esempio 'TimeSpan'). IIRC non era un errore di compilazione e semplicemente non funzionava, il che era probabilmente ancora più frustrante. –
il getter restituisce una copia di questa struttura ... potrei forzarla "byref"?) – serhio