Cómo evitar la validación de argumentos.

Validación de argumentos primitivos y "datos complejos"

Validando Argumentos

Al escribir un método, los argumentos deben validarse primero antes de realizar cualquier operación. Por ejemplo, digamos que tenemos una clase que representa a personas:

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

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

¿Qué pasa con esta clase de persona? el nombre y la edad no se validan antes de que sus valores se configuren como campos de Persona. ¿Qué quiero decir con "validado"? Ambos argumentos deben verificarse que sus valores son aceptables. Por ejemplo, ¿qué pasa si el valor del nombre es una cadena vacía? ¿O el valor de la edad es -10?

La validación de los argumentos se realiza lanzando ArgumentExceptions o excepciones derivadas cuando los valores son inaceptables. Por ejemplo:

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;
}

Esto valida adecuadamente los argumentos que el constructor de la persona recibe.

Tedium ad Nauseum

Debido a que ha estado validando argumentos durante mucho tiempo (¿verdad?), Es probable que esté cansado de escribir estas afirmaciones si (...) arroje argumentos ... en todos sus métodos.

¿Qué podemos hacer para evitar escribir String.IsNullOrEmpty miles de veces a lo largo de su código?

Respuestas a la pregunta(5)

Su respuesta a la pregunta