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