Dot-Net

.Net Hashtable - Contains vs ContainsKey

  • April 7, 2010

我剛剛注意到 HashTable 對像有一個 Contains 和 CotainsKey 方法,具有相同的描述。那麼它們只是同義詞還是在幕後有一些差異

如果用反射器查看 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);
}

Contains方法只是在內部呼叫該ContainsKey方法-您可以使用Reflector進行檢查。

引用自:https://stackoverflow.com/questions/2591045