Je viens de remarquer que les objets HashTable ont une méthode Contains et CotainsKey, avec la même description. Alors, sont-ils des synonymes ou est-il som edifference les coulisses. Hashtable Net - Contient vs ContainsKey
13
A
Répondre
18
Si vous examinez le code de Contient avec réflecteur, vous pouvez voir qu'il appelle directement ContainsKey.
L'IL est:
.method public hidebysig newslot virtual instance bool Contains(object key) cil managed
{
.maxstack 8
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: callvirt instance bool System.Collections.Hashtable::ContainsKey(object)
L_0007: ret
}
Cela se traduit comme suit C#
public virtual bool Contains(object key)
{
return this.ContainsKey(key);
}
+0
Alors pourquoi ContainsKey est public? – Imad
1
Non, ils se comportent exactement de la même
8
La méthode Contains
appelle simplement la méthode ContainsKey
interne - vous pouvez le vérifier en utilisant Reflector.
Bonne question! 'Contains' est là pour implémenter' IDictionary.Contains', qui "détermine si l'objet' IDictionary' contient un élément avec la clé spécifiée "- alors pourquoi 'ContainsKey' est là ?! – AakashM
hmm matière à réflexion. Pourquoi ne pas ouvrir une question distincte pour cela. – Midhat