Lire en anglais

Partager via


Erreur du compilateur CS0546

'accesseur' : substitution impossible, car 'propriété' n’a pas d’accesseur set substituable

La tentative de substitution de l’une des méthodes d’accesseur d’une propriété a échoué, car l’accesseur ne peut pas être substitué. Cette erreur peut se produire si :

  • la propriété de classe de base n’est pas déclarée comme virtual;

  • la propriété de classe de base ne déclare pas l’accesseur get ou set que vous voulez remplacer.

Si vous ne voulez pas remplacer la propriété de classe de base, vous pouvez utiliser le mot clé new avant la propriété dans une classe dérivée.

Pour plus d'informations, consultez Using Properties.

Exemple

L’exemple suivant génère l’erreur CS0546, car la classe de base ne déclare pas un accesseur set pour la propriété.

C#
// CS0546.cs  
// compile with: /target:library  
public class a  
{  
   public virtual int i  
   {  
      get  
      {  
         return 0;  
      }  
   }  
  
   public virtual int i2  
   {  
      get  
      {  
         return 0;  
      }  
  
      set {}  
   }  
}  
  
public class b : a  
{  
   public override int i  
   {  
      set {}   // CS0546 error no set  
   }  
  
   public override int i2  
   {  
      set {}   // OK  
   }  
}  

Voir aussi