Спасибо за совет.
Одной идеей, о которой я подумал, было создание нового класса с именем что-то вроде MatchedString для реализации ограничения.
У него будет конструктор, который требует строку регулярного выражения, и после построения выражение будет доступно пользователям только через свойство только для чтения. Тогда у него будет свойство value, которое пользователи могут установить, которое будет проверять соответствие выражению в установщике.
Я подумал, что тогда я мог бы также создать параметры для различных вариантов поведения, которые будут использоваться при сбое проверки в перечислении, и позволить пользователю указать, что он хочет:
- установить в пустую строку
- установить пустую строку и выдать исключение
- установить неверное значение в любом случае
- установить неверное значение в любом случае и выдать исключение
- просто выбросить исключение
- ничего не делать
Кроме того, я думал, что это позволит моему классному пользователю выполнить некоторые базовые тесты, не дублируя объект RegEx в своем собственном коде. Добавьте неявные преобразования в / из строкового типа, и он должен быть интуитивно понятен для пользователей класса.
Есть мысли по этому поводу?