Я не могу понять, как и зачем люди в глубине ветки пытаются переписывать и рефакторить — это явно бесполезное занятие.
Давай, разберем тобой написанное: >Человек, не разбираясь, например в танцах или боевых исскуствах, может посмотреть как двигается исполнитель и оценить технику исполнения >ТекСтрока = null; >ТекСтрока = стр.Split( { ';' } ); >Вместо ветвлений if/else — линейный match.
с теми же самыми проблемами.
Я смотрю на технику исполнения, и не понимаю, почему этот пример кода вообще обсуждается в траде.
Тут в одном методе собрался весь ад, который люди пытаются устранить, используя концепции функционального программирования.
>protected override
Этому проектированию явно не хватает анемичности
>var стр = ПотокЧтения.ReadLine();
У этого кода избыток побочных эффектов (неявное IO)
>ТекСтрока = null;
У этого кода избыток побочных эффектов (мутабельный стейт)
>return ЧитатьСтрокуБезПроверок();
Надуманные глупости, ведь никто, пишущий в стиле "ТекСтрока = null" не станет звать рекурсию.
Резюмируя: нельзя вот так просто взять кусок неадекватного кода, "присахарить", и утверждать, что на Немерле такая ***ня пишется лучше.
Этот пример демонстрирует только проблемы Немерле: отсутствие не нуллабельных классов, отсутствие чистых функций, подверженность ООП-"декомпозиции".