BC30369 : Impossible de faire référence à un membre instance d’une classe à partir d’une méthode partagée ou d’un initialiseur de membre partagé sans une instance explicite de la classe
Vous avez essayé de faire référence à un membre non partagé d’une classe à partir d’une procédure partagée. L’exemple suivant illustre cette situation :
Class Sample
Public x as Integer
Public Shared Sub SetX()
x = 10
End Sub
End Class
Dans l’exemple précédent, l’instruction d’assignation x = 10
génère ce message d’erreur. Cela est dû au fait qu’une procédure partagée tente d’accéder à une variable d’instance.
La variable x
est un membre d’instance, car elle n’est pas déclarée comme partagée (Shared). Chaque instance de la classe Sample
contient sa propre variable x
individuelle. Quand une instance définit ou modifie la valeur de x
, la valeur de x
dans d’autres instances n’est pas affectée.
Toutefois, la procédure SetX
est Shared
entre toutes les instances de la classe Sample
. Cela signifie qu’elle n’est associée à aucune instance de la classe, mais qu’elle fonctionne indépendamment des instances individuelles. Étant donné qu’elle n’est associée à aucune instance particulière, setX
ne peut pas accéder à une variable d’instance. Elle doit fonctionner uniquement sur des variables Shared
. Quand SetX
définit ou modifie la valeur d’une variable partagée, la nouvelle valeur est disponible pour toutes les instances de la classe.
ID d’erreur : BC30369
Déterminez si vous souhaitez que le membre soit partagé entre toutes les instances de la classe ou conservé comme membre individuel pour chaque instance.
Si vous voulez qu’une seule copie du membre soit partagée entre toutes les instances, ajoutez le mot clé
Shared
à la déclaration du membre. Conservez le mot cléShared
dans la déclaration de la procédure.Si vous souhaitez que chaque instance dispose de sa propre copie individuelle du membre, ne spécifiez pas
Shared
pour la déclaration du membre. Supprimez le mot cléShared
de la déclaration de la procédure.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :