.Net Hashtable - 包含vs ContainsKey

Mid*_*hat 13 .net hashtable

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

GvS*_*GvS 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 
}
Run Code Online (Sandbox Code Playgroud)

这转换为以下C#

public virtual bool Contains(object key)
{
    return this.ContainsKey(key);
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*d M 8

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