Erreur du compilateur CS0686
L’accesseur 'accessor' ne peut pas implémenter le membre d’interface 'member' pour le type 'type'. Utilisez une implémentation d’interface explicite.
Suggestion : cette erreur peut se produire lors de l’implémentation d’une interface qui contient des noms de méthodes en conflit avec les méthodes générées automatiquement et associées à une propriété ou à un événement. Les méthodes get/set des propriétés sont générées sous la forme get_property et set_property, et les méthodes add/remove des événements sont générées sous la forme add_event et remove_event. Si une interface contient l’une ou l’autre de ces méthodes, un conflit se produit. Pour éviter cette erreur, implémentez les méthodes à l’aide d’une implémentation d’interface explicite. Pour ce faire, spécifiez la fonction comme suit :
Interface.get_property() { /* */ }
Interface.set_property() { /* */ }
Exemple 1
L’exemple suivant génère l’erreur CS0686 :
// CS0686.cs
interface I
{
int get_P();
}
class C : I
{
public int P
{
get { return 1; } // CS0686
}
}
// But the following is valid:
class D : I
{
int I.get_P() { return 1; }
public static void Main() {}
}
Exemple 2
Cette erreur peut également se produire quand vous déclarez des événements. La construction d’événements génère automatiquement les méthodes add_event
et remove_event
, qui sont susceptibles d’être en conflit avec les méthodes portant le même nom dans une interface, comme dans l’exemple suivant :
// CS0686b.cs
using System;
interface I
{
void add_OnMyEvent(EventHandler e);
}
class C : I
{
public event EventHandler OnMyEvent
{
add { } // CS0686
remove { }
}
}
// Correct (using explicit interface implementation):
class D : I
{
void I.add_OnMyEvent(EventHandler e) {}
public static void Main() {}
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour