Как указано в документации
Когда этот метод возвращает значение, связанное с указанным ключом, если ключ найден; в противном случае значение по умолчанию для типа параметра значения.
, значение будет изменено.
Если вы хотите сократить код, вы можете сделать это
Dictionary<int, long> myDic;
if( !myDic.TryGetValue(100, out var lValue))
{
lValue = -1;
}
Обновление
Вы можете написать собственный метод расширения TryGetValue
, который принимает ref TValue value
public static class DictionaryExtensions
{
public static bool TryGetValue<TKey,TValue>( this IDictionary<TKey,TValue> dict, TKey key, ref TValue value )
{
var result = dict.TryGetValue( key, out var foundValue );
if ( result )
value = foundValue;
return result;
}
}
живой рабочий пример на . net скрипка