В общем, вы должны разделить проблему на два различных аспекта:
- Как проверить, если некоторые ограничение (как, например, если число вхождений символов
$
не превышает 5)
- Как форсировать e что ограничение
Чтобы решить проблему 1., вы можете, конечно, использовать Regex. Регулярное выражение \d{6,}
, например, может проверить, есть ли 6 или более цифр.
Чтобы решить проблему 2., C# не имеет общего метода для этого. Проще говоря, должно быть что-то, что вынуждает ограничения. Самый простой способ создать класс со свойствами, который проверяет ограничения на установки (так что это свойство, которое вынуждает ограничение):
public class SomeTestClass
{
private string text;
public string Text
{
get
{
return text;
}
set
{
CheckConstraints(value, "Text");
text = value;
}
}
private void CheckConstraints(string value, string param)
{
if (Regex.IsMatch(value, @"\d{6,}"))
{
throw new ArgumentException("Argument do not match the constraint", param);
}
}
}
Как text
является частным, не существует никакого другого способа установить его, чем собственность , который проверяет ваши ограничения. Это, конечно, может быть дополнительно улучшено, например, путем создания наборов повторно используемых правил и т.д.
Если есть другой объект, который управляет вашим классом - например, некоторый поставщикданных, который управляет объектами данных, вы можете использовать приписаны подход.
Regex - соответствие шаблону. Поэтому вы можете легко определить, есть ли в строке более 5 '' ', но я не уверен, что вы подразумеваете, ограничивая случаи. – paqogomez
@paqogomez Количество этих отдельных символов в строке не должно превышать 5 –