Partager via


Cette expression est une valeur et ne peut donc pas être la cible d'une assignation

Mise à jour : novembre 2007

Expression is a value and therefore cannot be the target of an assignment

Une instruction tente d'assigner une valeur à une expression. Vous ne pouvez assigner une valeur à une variable, une propriété ou un élément de tableau accessible en écriture qu'au moment de l'exécution . L'exemple suivant montre comment une telle erreur peut se produire.

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.

Des exemples semblables pourraient s'appliquer à des propriétés et à des éléments de tableau.

Accès indirect. Un accès indirect via un type valeur peut également générer cette erreur. Prenez l'exemple de code suivant qui tente de définir la valeur de Point en y accédant indirectement par le biais de 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.

La dernière instruction de l'exemple précédent échoue, car elle ne fournit qu'une allocation temporaire pour la structure Point retournée par la propriété Location. Une structure est un type valeur, et la structure temporaire n'est pas conservée après l'exécution de l'instruction. Le problème est résolu en déclarant et en utilisant une variable pour Location, ce qui a pour effet de créer une allocation plus permanente pour la structure Point. L'exemple de code suivant remplace la dernière instruction de l'exemple précédent.

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

ID d'erreur : BC30068

Pour corriger cette erreur

  • Si l'instruction assigne une valeur à une expression, remplacez l'expression par une variable, une propriété ou un élément de tableau unique accessible en écriture.

  • Si l'instruction effectue un accès indirect par le biais d'un type valeur (généralement une structure), créez une variable pour contenir le type valeur.

  • Assignez la structure appropriée (ou autre type valeur) à la variable.

  • Utilisez la variable pour accéder à la propriété pour lui assigner une valeur.

Voir aussi

Tâches

Procédures de dépannage

Concepts

Opérateurs et expressions en Visual Basic

Instructions d'assignation