.Net Hashtable - содержит vs ContainsKey

Я только заметил, что объекты HashTable имеют метод Contains и CotainsKey, с тем же описанием. Точно так же они просто синонимы или есть смешение за кулисами

Ответы

Ответ 1

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

ИЛ:

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

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

public virtual bool Contains(object key)
{
    return this.ContainsKey(key);
}

Ответ 2

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

Ответ 3

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