클래스가 key와 index 인 사전이 있고 아이템이 존재하면 그 아이템을 반환하고 그렇지 않으면 null을 반환한다고 가정합니다. 다음 중 어느 것이 더 효율적입니까?키가 존재하는지 검사하는 것보다 KeyNotFoundException을 잡는 것이 더 효율적입니까?
if(myDictionary.ContainsKey(myKey))
return myDictionary[myKey];
return null;
또는
try { return myDictionary[myKey]; }
catch { return null; }
짐작할 수 있겠지만 스택을 푸는 것은 해시 조회보다 비용이 많이 듭니다. 알아낼 수있는 유일한 방법이 있습니다! –
'if (myDict.TryGetValue (k, out v)) '와 같이'TryGetValue'를 항상 사용할 수 있습니다. else null; – dcg
예외를 피할 수있는 방법이 있으면 그것을 사용하십시오. – Steve