J'ai vu cette affirmation dans de nombreux échantillons de la documentation, comme
Cette classe est la mise en œuvre par défaut de l'interface "IsomeInterface" P> blockQuote>
Qu'est-ce que cela signifie exactement? Merci p>
3 Réponses :
Cela signifie que lorsque vous appelez le Trier Méthode sans argument (Sans spécifier explicitement un comparateur), il utilisera cette implémentation par défaut. P>
Cela signifie que cette classe est celle qui met en œuvre l'interface. Il pointe de l'objet qui implémente l'interface elle-même sans des membres dérivés ou hérités, mais clairement l'interface. Ceci est la classe qui correspond à cette interface.
public interface IComparer {
// Some members to implement here.
}
public class Comparer : IComparer {
// IComparer members implementation
}
Ceci est un peu trompeur, puisqu'une interface, par définition, ne fournit aucune mise en œuvre. P>
Cependant, de nombreuses parties du cadre tentent de faciliter la vie - ils fournissent donc une méthode qui prend une interface, mais fournit également une surcharge sans paramètres. Un bon exemple est La documentation ici suggère que, si vous utilisez une méthode qui nécessiterait normalement un Cependant, il s'agit vraiment d'un "détail de mise en œuvre" des classes non liées à l'interface elle-même. Personnellement pense que c'est un mauvais choix de mots dans la documentation et devrait être quelque chose de plus comme: p>
De nombreux types dans le cadre s'appuient sur une implémentation commune de cette interface fournie par
le comparateur strong> classe. p>
blockQuote>
Ce serait, à mon avis, une signification plus claire à cette ... p> Liste icomparer
J'aime beaucoup de telles explications! =)
@WILL: Merci! Je fais de mon mieux ;)
Ajoute quelque chose. Parfois, un cadre utilise des cas spéciaux (ou modèle d'objet NULL) et une implémentation par défaut d'une interface peut faire partie du motif. :)