Dans n'importe quelle classe, comment faire explicitement référence à une certaine méthode de ma classe?Quel est le nom complet d'une méthode C#?
Par exemple, ce code fonctionne:
class Test : IEnumerable<T> {
public IEnumerator<T> GetEnumerator() { return null; }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
}
Mais celui-ci ne fait pas!
class Test : IEnumerable<T> {
IEnumerator<T> IEnumerable<T>.GetEnumerator() { return null; }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } // error
}
Comment faire référence à la version générique de ma méthode? En Java je le préfixerais simplement avec le nom de l'interface, mais cela ne semble pas fonctionner en C#. Y at-il un moyen de le faire, autre que ((IEnumerable<T>)this).GetEnumerator()
?
EDIT: Je ne suis pas intéressé par "pourquoi" cela ne fonctionne pas de cette façon. Je cherche juste un moyen de le faire. Merci.
Merci. Je voulais utiliser une implémentation d'interface explicite car elle supprime l'avertissement du compilateur pour "méthode publique non documentée". Il semble que je vais devoir copier sa documentation! : s Vive Java! –