Dot-Net
.Net Hashtable - Contains vs ContainsKey
我剛剛注意到 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進行檢查。