Много раз, использование out
может помочь с небольшим приростом производительности.
Рассмотрим метод TryGetValue
для IDictionary
(скажем, myDictionary является IDictionary<string, string>
) Вместо того, чтобы делать это:
string value = String.Empty;
if (myDictionary.ContainsKey("foo"))
{
value = myDictionary["foo"];
}
И ContainsKey
, и индексатор должны искать ключ в словаре, но вы можете избежать этого двойного поиска в положительном случае, выполнив:
string value;
if (!myDictionary.TryGetValue("foo", out value))
{
value = String.Empty;
}
ИМО, это достойная причина для использования out
параметров.