Возврат значения по умолчанию. (С#)
Я создаю свой собственный словарь, и мне трудно реализовать функцию TryGetValue. Когда ключ не найден, мне нечего назначать параметру out, поэтому я оставляю его как есть. Это приводит к следующей ошибке: "Значение параметра out out должно быть назначено до того, как элемент управления покинет текущий метод"
Итак, в принципе, мне нужен способ получить значение по умолчанию (0, false или nullptr в зависимости от типа). Мой код похож на следующий:
class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
bool IDictionary<K, V>.TryGetValue (K key, out V value)
{
return false;
}
....
}
Ответы
Ответ 1
Вы ищете ключевое слово default
.
Например, в примере, который вы указали, вы хотите что-то вроде:
class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
bool IDictionary<K, V>.TryGetValue (K key, out V value)
{
value = default(V);
return false;
}
....
}
Ответ 2
default(T)
Ответ 3
return default(int);
return default(bool);
return default(MyObject);
поэтому в вашем случае вы должны написать:
class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
bool IDictionary<K, V>.TryGetValue (K key, out V value)
{
... get your value ...
if (notFound) {
value = default(V);
return false;
}
}
....
}
Ответ 4
Обратитесь к моему подробному решению в Определите значение по умолчанию для произвольного типа при запуске tme
Надеюсь, что это поможет...
Марк