Valider une valeur dans la propriété

J'ai donc entendu que la validation d'une valeur à une propriété comme ceci:

//dummy example, let's assume that I want my value without dots
public string MyProp
{
    set
    {
        if(value.Contains('.'))
            throw new ArgumentException("Must not contain '.'", "value");
    }
}

est faux et je doit l'éviter.

Cependant, dans les premiers jours on m'a dit que c'est la bonne façon. Nous pourrions utiliser l'encapsulation, il est juste un endroit à vérifier, SEC, etc.

Quel est le problème avec mon petit exemple?

rien de mal avec elle, mais a) je préfère jeter un ArgumentException, b) vous avez oublié de définir réellement la valeur!
Vous ne pouvez pas simplement jeter une chaîne de caractères. Vous avez besoin de lancer une exception.
double possible de C# ajouter la validation sur une méthode de définition
pas doublon. Dans cette question, ils ne discutent pas des exceptions
C'est sur la bonne voie. Plusieurs parties de l' .NET framework faire la même chose.

OriginalL'auteur ramires.cabral | 2013-04-08