.NET und C# ohne Web?
А то, что наличие оут-параметров нарушало школьное определение функции тебе не мешало?
Да мне пофиг на мхом поросшие определения функции. Кому надо, пусть возвращает из функции всегда только одно значение, городит для этого спецкласс и думает, что хороший мальчик и остался в той же парадигме, хотя на самом деле просто прикрыл фиговым листочком свои текущие как мартовская кошка абстракции. Тем более, что в шарпе не функции, а методы. А народу надо уже много лет возвращать несколько параметров за раз, а аут-параметры были неудобным костылём. Возврат кортежа удобнее. Может, можно и ещё улучшить, но и это уже прогресс.
В вопросе возврата чего-то из функции меня больше интересует где будет размещен результат - куча? стек?
Если программист должен постоянно задумываться о куче и стеке, когда что-то из метода возвращает, он просто напрасно тратит время и забивает голову. Языки высокого уровня были придуманы, чтобы больше времени уделять задачам, а не деталям реализации самого языка. Кому охота постоянно так задумываться и двигать битики ручками, экономя такты процессора - добро пожаловать в плюсы и чистый Си. Узкие участки оптимизируются вплоть до ассемблера, но только узкие, а не на каждый возврат из функции заморачиваться.
Хотя еще удобнее было бы просто сделать возврат класса/интерфейса
-----
Ну так нормальные прогеры так и писали.
Так писали хорошие мальчики, чтобы их не заругали, что они отступают от парадигм седобородых дядечек. Хотя на самом деле они просто городили спагетти-костыли.