Исходя из языка программирования Swift, я привык к парадигме optional values. Есть много интересных аспектов этой языковой функции, но, в частности, мне интересно, имеет ли C# эквивалентный способ обработки, то есть значения возвращаемых функций nil
. Возьмем, к примеру, простую функцию поиска, которая возвращает значение для данного ключа. В Swift, идиоматическим способом обработки недостающего ключа было бы просто вернуть nil
. По сути, это мешает программистам бросать ошибки или выполнять обработку ошибок в подавляющем большинстве случаев, и это работает довольно элегантно. Аналогично, в Javascript я могу просто вернуть undefined
.Идиоматические дополнительные значения возврата в C#
Из того, что я читал на MSDN, кажется, что программист на C# обычно предпочитает классические исключения в таких случаях и обрабатывает их в блоках try catch. Это вообще так? Было бы необычным, например, обернуть целочисленные возвращаемые значения в объекте Nullable и позволить вызывающей функции проверить, равно ли значение null? Каким будет ортодоксальный подход к этим ситуациям?
Благодаря нагрузкам. Я особенно ценю предложение TryGet, это само по себе делает меня намного яснее. –