Supposons que j'ai une classe T
que je souhaite utiliser comme clé dans une collection Dictionary<T,U>
.Que faut-il faire pour utiliser la valeur d'un type de référence en tant que clé de dictionnaire?
Que dois-je implémenter dans T
afin que ces clés soient basées sur des valeurs de T
plutôt que des références T
? J'espere que c'est juste GetHashCode()
Je ne recommanderais pas d'avoir un type héritable implémentable IEquatable, car de mauvaises choses se produiront si un type dérivé substitue Object.Equals (Object) et/ou Object.GetHashCode (Object) et l'implémentation de IEquatable n'appelle pas ces remplacements; puisque lancer vers Object pour appeler ces overrides annulerait tout avantage obtenu en utilisant l'interface générique, il n'y a vraiment aucun intérêt à l'implémenter. –
supercat