Я не знаю, сколько раз мне приходилось писать код для проверки строковых аргументов:
public RoomName(string name)
{
if (string.IsNullOrEmpty(name))
{
throw new ArgumentException("Cannot be empty", "name");
}
}
Во всяком случае, чтобы избежать этого? Есть ли какой-то атрибут или механизм дизайна за контрактом, чтобы избежать этого? Невозможно сказать:
public RoomName(NotNullOrEmptyString name)
{
без фактического создания этого типа?