Посмотри в CSharpFunctionalExtensions. Хорошо всё равно не будет, но так хотя-бы велосипедить не будешь.
Паттерн стратегия. Один абстрактный базовый класс Result и два конкретных наследника — Ok и Error. Бойлерплейт, кровища, говнище. Проще забить и писать на C#, как на C#. А если хочется нормальный язык, писать на F#. 😂
вообще пока достаточно успешно удается избегать паттерн-дривен девелопмента во многих местах, и конкретно для резалта юзать стратегию прям ооочень не хочется
Ну это как бы стандартный способ представлять типы-суммы в ООП-языках. Понятно, что возможны варианты.
CSharpFunctionalExtensions сильно жирно, мне сериализовывать и светить наружу этим резалтом не нужно, мне он нужен для рэйлвэй и не желания кидать эксепшны на каждый чих
Ну в фарше я часто выдираю файлы из других проектов. Не знаю, насколько этот подход применим здесь.
там не один файл)
Это сильно больше, чем я предполагал даже в худшем случае.
вот. не сказал бы, что наименее наркоманский, тем не менее
для истории - в итоге в пронете мне такой вариант подсказали https://dotnetfiddle.net/F7qZN8, все еще есть говнина с наследованием и имлиситами, но это лучше, чем то что я навелосипедил
Обсуждают сегодня