Как избежать проверки аргументов

Проверка примитивных аргументов и «сложных данных»

Валидация аргументов

При написании метода аргументы должны быть проверены в первую очередь перед выполнением каких-либо операций. Например, допустим, у нас есть класс, представляющий людей:

public class Person
{
    public readonly string Name;
    public readonly int Age;

    public class Person(string name, int age)
    {
        this.Name = name;
        this.Age = age;
    }
}

Что не так с этим классом Person? имя и возраст не проверяются до того, как их значения заданы как поля Person. Что я подразумеваю под «подтверждено»? Оба аргумента должны быть проверены, чтобы их значения были приемлемыми. Например, что если значение name является пустой строкой? Или возрастное значение -10?

Проверка аргументов выполняется путем генерирования ArgumentExceptions или производных исключений, когда значения неприемлемы. Например:

public class Person(string name, int age)
{
    if (String.IsNullOrEmpty(name))
    {
        throw new ArgumentNullException
            ("name", "Cannot be null or empty.");
    }

    if (age <= 0 || age > 120)
    {
        throw new ArgumentOutOfRangeException
            ("age", "Must be greater than 0 and less than 120.");
    }

    this.Name = name;
    this.Age = age;
}

Это правильно проверяет аргументы, которые получает конструктор Person.

Тедиум до тошноты

Поскольку вы проверяли аргументы в течение долгого времени (верно?), Вы, вероятно, устали писать эти операторы if (....) в качестве аргумента ... во всех ваших методах.

Что мы можем сделать, чтобы избежать написания String.IsNullOrEmpty несколько раз в вашем коде?

Ответы на вопрос(5)

Ваш ответ на вопрос