чтобы вам было легче искать ошибку в куче if-ов, то номера будут больше не нужныпочему вы думаете, что номера будут не нужны? Наоборот, будут именно нужны, чтобы в коде найти то самое место, где сформировалась ошибка, иначе валидация начинает работать как магия. Мне до введения кодов приходилось гадать, что же именно не подходит? А теперь есть код ошибки - есть место в программном коде. Обратная связь. Как же без неё?
код противоречит сразу четырём принципамно ваше предложение может нарушать основной принцип - если работает - не трогай. ))) Ну а по сути наверное не было ни формализации правил, ни тестов. Но, скажу по секрету, у меня пока тестов тоже нет. Надеюсь временно. Переживаю.
Не нужно городить огородов изобретая свой собственный велосипед с номерами ошибокЛадно, ладно ))) Сама по себе программа уже велосипед, иначе она была бы фреймворком. Это не значит, что указанная вами валидация не подходит, просто её применение должно быть обосновано. Изначально речь о ней в проекте не шла, но постепенно шаг за шагом требования растут.
//Как в примере:
Range(1800, 2000, ErrorMessage = "Год должен быть в промежутке от 1800 до 2000")
// как меня интересует:
Range(min, max, ErrorMessage = $"Год должен быть в промежутке от {min} до {max}")
Для зависимых полей приходится писать кастомные классы-валидаторыСлишком уж сложно для данного случая. (В вопросе не было уточнения, но в приложении нет MVC-модели - это API-сервис).
Особенностью проверок в моей программе в том, что нельзя точно сказать, что ошибка вызвана одним параметров. Не проходит не один параметр, а условие. Там сравниваются один,два,три и более параметров, но принимать решение какой параметр не подходит должен только пользователь. Например:
Пользователь видит нормальное сообщение, а если он в чём-то сомневается, то звонит мне и не рассказывает, что параметры почему-то неверные, а называет номер ошибки. И теперь начинается предметный разговор, т.к. условия выдавал мне конструктор, а мне всё равно, что ему хотелось. Теперь мы будем обсуждать сухой язык программы. Обратная связь.