.Net Hashtable - 包含vs ContainsKey

时间:2010-04-07 08:49:52

标签: .net hashtable

我刚刚注意到HashTable对象有一个Contains和CotainsKey方法,具有相同的描述。那么他们只是同义词还是幕后的som edifference

3 个答案:

答案 0 :(得分:18)

如果检查包含反射器的代码,可以看到它直接调用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);
}

答案 1 :(得分:8)

Contains方法只是在内部调用ContainsKey方法 - 您可以使用Reflector进行检查。

答案 2 :(得分:1)

不,他们的行为完全相同