我有一個Vector2的生成列表,我必須檢查一個字典,看看它們是否存在,這個函數會在每個tick中執行。Containskey VS Try Catch
哪個運行速度最快/是否最好這樣做?
public static bool exists(Vector2 Position, Dictionary<Vector2, object> ToCheck)
{
try
{
object Test = ToCheck[Position];
return (true);
}
catch
{
return (false);
}
}
還是應該堅持規範?
public static bool exists(Vector2 Position, Dictionary<Vector2, object> ToCheck)
{
if (ToCheck.ContainsKey(Position))
{
return (true);
}
return (false);
}
感謝輸入:)
側面說明:(該鍵的值不會在這點事或我會用替代的containsKey TryGetValue)
你怎麼可能會寫第二個方法是什麼?你真的用另一個函數調用來包裝函數調用,什麼都不做。而不是調用該函數,調用者可以直接調用「ContainsKey」 – Servy
是的,只需返回'ToCheck.ContainsKey(Position)'。 – nawfal
可能的重複[爲什麼檢查字典是否包含密鑰更快,而不是在發生異常時檢查它?](http://stackoverflow.com/questions/16101795/why-is-it-faster檢查是否字典包含的關鍵而不是趕上) – nawfal