Peut les méthodes de vulgarisation être appliquée à des interfaces?
Est-il possible d'appliquer une méthode d'extension pour l'interface? (C# question)
C'est par exemple le suivant:
-
créer un ITopology interface
-
créer une méthode d'extension pour cette interface (ex: public static int CountNodes(ce ITopology topologyIf) )
-
puis lors de la création d'une classe (par exemple, MyGraph) qui met en œuvre ITopology, il serait automatiquement l'Compter les Noeuds de l'extension.
De cette façon, les classes implémentant l'interface n'auraient pas d'avoir un nom de classe pour s'aligner avec ce qui a été défini dans la méthode d'extension.
Vous devez vous connecter pour publier un commentaire.
Bien sûr, ils peuvent, pour la plupart de Linq est construit autour de l'interface des méthodes d'extension.
Interfaces ont été en fait l'une des forces motrices pour le développement de méthodes d'extension; puisqu'ils ne peuvent pas mettre en œuvre de leurs propres fonctions, les méthodes d'extension sont le moyen le plus facile d'associer un code avec les définitions d'interface.
Voir le Énumérable classe pour un ensemble de méthodes d'extension construite autour de
IEnumerable<T>
. Pour mettre en œuvre, c'est bien le même que la mise en œuvre de l'un pour une classe:Il n'y a rien de particulièrement différent sur les méthodes d'extension autant que les interfaces sont concernées; une méthode d'extension est juste une méthode statique que le compilateur s'applique certaines sucre syntaxique pour la faire ressembler à la méthode fait partie du type de cible.