Conception des propriétés

En général, les méthodes représentent des actions et les propriétés représentent des données. Les propriétés étant utilisées comme des champs, elles ne doivent pas être complexes en termes de calcul ou produire des effets secondaires. Pour plus d'informations sur la conception des propriétés, consultez Conception de propriétés indexées et Événements de notification des modifications de propriétés.

Les règles suivantes permettent de garantir une conception correcte de vos propriétés.

Créez des propriétés en lecture seule si l'appelant ne doit pas être en mesure de modifier la valeur de la propriété.

Soyez conscient que la mutabilité du type de propriété affecte les modifications que l'utilisateur final peut apporter. Si, par exemple, vous définissez une propriété en lecture seule qui retourne une collection en lecture/écriture, l'utilisateur final ne peut pas assigner une autre collection à la propriété mais peut modifier les éléments de la collection.

Ne fournissez pas de propriétés à définir uniquement.

Si l'accesseur Get de la propriété ne peut pas être fourni, utilisez alors une méthode pour implémenter les fonctionnalités. Le nom de la méthode doit commencer par Set suivi de ce qui aurait dû être le nom de propriété. Par exemple, AppDomain possède une méthode appelée SetCachePath au lieu d'avoir une propriété appelée CachePath qu'il est uniquement possible de définir.

Fournissez des valeurs par défaut raisonnables pour toutes les propriétés ; vous garantissez ainsi que les valeurs par défaut ne provoquent pas de faille de sécurité ou ne donnent un design peu efficace.

Faites en sorte que les propriétés puissent être définies dans n'importe quel ordre même si cela se traduit par un état d'objet non valide temporaire.

Conservez la valeur antérieure si un accesseur Set de propriété lève une exception.

Évitez de lever des exceptions à partir des accesseurs Get de propriété.

Les accesseurs Get de propriété doivent être des opérations simples sans condition préalable. Si un accesseur Get est en mesure de lever une exception, envisagez de changer le design de la propriété pour en faire une méthode. Cette recommandation ne s'applique pas aux indexeurs. Les indexeurs peuvent lever des exceptions en raison d'arguments non valides.

Lever des exceptions à partir d'un accesseur Set de propriété est valide et admis.

Portions Copyright 2005 Microsoft Corporation. Tous droits réservés.

Portions Copyright Addison-Wesley Corporation. Tous droits réservés.

Pour plus d'informations sur les règles de conception, consultez « règles de conception d'infrastructure : Conventions idiomes et modèles carnet de bibliothèques réutilisables framework » Krzysztof Cwalina et Brad Abrams, publiés par Addison-Wesley, 2005.

Voir aussi

Autres ressources

Instructions de conception des membres

Instructions de conception pour le développement de bibliothèques de classes