Partager via


Les accesseurs de propriété ne peuvent pas être déclarés '<ModificateurAccès>' dans une propriété 'NotOverridable'

Mise à jour : novembre 2007

Property accessors cannot be declared '<accessmodifier>' in a 'NotOverridable' property

Une Get, instruction ou une Set, instruction (Visual Basic) dans une propriété NotOverridable contient le mot clé Private.

La ligne de raisonnement ci-dessous explique la raison pour laquelle NotOverridable et Private ne peuvent pas être associés dans une Property, instruction :

  1. Une propriété ou une procédure qui ne substitue pas de propriété ou de procédure de classe de base a le paramètre par défaut NotOverridable.

  2. Toutefois, une propriété ou une procédure dans une classe dérivée qui substitue une propriété ou une procédure de classe de base a le paramètre par défaut Overridable. Pour mettre fin à la hiérarchie de substitution, vous pouvez la déclarer NotOverridable. Ce contexte est le seul dans lequel vous pouvez utiliser NotOverridable. En d'autres termes, vous pouvez utiliser NotOverridable uniquement en association avec Overrides.

  3. Si une propriété ou une procédure de classe de base est déclarée Private (Visual Basic), une classe dérivée ne peut pas substituer cette propriété ou procédure car elle ne peut pas y accéder. C'est la raison pour laquelle vous ne pouvez pas utiliser Private en association avec Overridable.

  4. Pour substituer une propriété ou une procédure, la propriété ou la procédure de substitution doit avoir la même signature, mais également le même niveau d'accès. Cela signifie qu'une propriété ou une procédure de substitution ne peut pas spécifier Private, car une propriété ou une procédure qui peut être substituée ne peut pas spécifier Private.

  5. Étant donné que vous pouvez spécifier NotOverridable uniquement sur une propriété ou une procédure de substitution, vous ne pouvez pas l'associer à Private.

En suivant le même raisonnement, les procédures de propriété (Get et Set) d'une propriété de substitution ne peuvent pas avoir la valeur Private.

ID d'erreur : BC31106

Pour corriger cette erreur

  • Supprimez le mot clé Private de l'instruction Get ou Set, ou supprimez les mots clés Overrides et NotOverridable de l'instruction Property.

Voir aussi

Tâches

Comment : déclarer une propriété avec des niveaux d'accès mixtes

Concepts

Procédures Property

Différences entre l'occultation et la substitution