.Net Hashtable - содержит против ContainsKey - PullRequest
13 голосов
/ 07 апреля 2010

Я только что заметил, что у объектов HashTable есть метод Contains и CotainsKey с тем же описанием. Так они просто синонимы или есть какая-то эйфория за кулисами

Ответы [ 3 ]

18 голосов
/ 07 апреля 2010

Если вы изучите код Contains с отражателем, вы увидите, что он напрямую вызывает ContainsKey.

IL - это:

.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 
}

Это переводит на следующий C #

public virtual bool Contains(object key)
{
    return this.ContainsKey(key);
}
8 голосов
/ 07 апреля 2010

Метод Contains просто вызывает метод ContainsKey внутри - вы можете проверить это с помощью Reflector .

1 голос
/ 07 апреля 2010

Нет, они ведут себя точно так же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...