Condividi tramite


BC30068: L'espressione è un valore, quindi non può essere la destinazione di un'assegnazione

Un'istruzione tenta di assegnare un valore a un'espressione. È possibile assegnare un valore solo a una variabile, una proprietà o un elemento di matrice scrivibile in fase di esecuzione. L'esempio seguente illustra come può verificarsi questo errore.

Dim yesterday As Integer
ReadOnly maximum As Integer = 45
yesterday + 1 = DatePart(DateInterval.Day, Now)
' The preceding line is an ERROR because of an expression on the left.
maximum = 50
' The preceding line is an ERROR because maximum is declared ReadOnly.

Esempi simili sono applicabili alle proprietà e agli elementi di matrice.

Accesso indiretto. Anche l'accesso indiretto tramite un tipo valore può generare questo errore. Si consideri l'esempio di codice seguente, che tenta di impostare il valore di Point accedendovi indirettamente tramite Location.

' Assume this code runs inside Form1.
Dim exitButton As New System.Windows.Forms.Button()
exitButton.Text = "Exit this form"
exitButton.Location.X = 140
' The preceding line is an ERROR because of no storage for Location.

L'ultima istruzione dell'esempio precedente ha esito negativo perché crea solo un'allocazione temporanea per la struttura Point restituita dalla proprietà Location. Una struttura è un tipo valore e la struttura temporanea non viene conservata dopo l'esecuzione dell'istruzione. Il problema si risolve dichiarando e usando una variabile per Location, creando così un'allocazione più permanente per la struttura Point. L'esempio seguente mostra il codice con cui è possibile sostituire l'ultima istruzione dell'esempio precedente.

Dim exitLocation as New System.Drawing.Point(140, exitButton.Location.Y)
exitButton.Location = exitLocation

ID errore: BC30068

Per correggere l'errore

  • Se l'istruzione assegna un valore a un'espressione, sostituire l'espressione con una singola variabile, proprietà o elemento matrice scrivibile.

  • Se l'istruzione accede in modo indiretto tramite un tipo valore (in genere una struttura), creare una variabile per contenere il tipo valore.

  • Assegnare alla variabile la struttura appropriata o un altro tipo valore.

  • Usare la variabile per accedere alla proprietà e assegnare un valore.

Vedi anche