IDictionary<string, string> rapport de Dictionnaire<string, string>
quelle est la valeur de l'utilisation de IDictionary ici?
Vous devez vous connecter pour publier un commentaire.
quelle est la valeur de l'utilisation de IDictionary ici?
Vous devez vous connecter pour publier un commentaire.
La valeur de l'aide d'une interface est toujours la même: vous n'avez pas à changer le code client lors du passage à un autre backend de mise en œuvre.
Considérer que le profilage votre code plus tard, montre que d'une table de hachage de mise en œuvre (utilisé dans le
Dictionary
classe) n'est pas adapté à votre tâche et qu'un binaire un arbre de recherche plus performant. Si vous avez codé une interface de commutation de la mise en œuvre est simple. Si, toutefois, vous avez utilisé un béton de classe, vous avez à changer beaucoup plus de code dans beaucoup plus d'endroits. => Cela coûte du temps et de l'argent.IDictionary permet un couplage lâche.
Dire que vous avez une méthode comme ceci:
Vous pouvez l'utiliser comme ceci:
Basé sur votre question précédente Classe hérite générique
dictionnaire<string, IFoo>
et Interface et la discussion dans les réponses, je devine votre demande plus au sujet de l'héritage de plutôt que de l'utiliser.La mise en œuvre à partir du Dictionnaire est très bien si votre heureux avec la façon dont le dictionnaire est mis en œuvre. Si vous voulez changer quelque chose, puis la mise en œuvre de IDictionary est mieux.
À mon humble avis, si vous allez couvrir un membre existant avec les "nouveaux" alors il est préférable d'implémenter l'interface plutôt que d'hériter de la classe d'origine.