Compartir a través de


Diseño de propiedades

En general, los métodos representan acciones y las propiedades representan datos. Las propiedades se utilizan como campos, en el sentido de que las propiedades no deberían ser computacionalmente complejas ni generar efectos secundarios. Para obtener información adicional sobre el diseño de propiedades, vea Diseño de propiedades indizadas y Eventos de notificación de cambio de propiedad.

Las instrucciones siguientes ayudan a garantizar que sus propiedades están bien diseñadas.

Cree propiedades de sólo lectura si el llamador no debería poder cambiar sus valores.

Tenga en cuenta que la mutabilidad del tipo de propiedad afecta a lo que el usuario final puede cambiar. Por ejemplo, si define una propiedad de sólo lectura que devuelve una colección de lectura-escritura, el usuario final no puede asignar una colección distinta a la propiedad, pero sí modificar los elementos de la colección.

No utilice propiedades de sólo establecimiento.

Si no se puede proporcionar el captador de propiedades, utilice en su lugar un método para implementar la funcionalidad. El nombre de método debería comenzar con Set seguido de lo que habría sido el nombre de propiedad. Por ejemplo, AppDomain tiene un método llamado SetCachePath en lugar de una propiedad de sólo establecimiento denominada CachePath.

Proporcione valores predeterminados sensatos para todas las propiedades, garantizando que esos valores predeterminados no producen una vulnerabilidad de seguridad o un diseño sumamente ineficiente.

Permita establecer las propiedades en cualquier orden aun cuando esto pueda producir un estado temporal de objeto no válido.

Conserve el valor anterior si un establecedor de propiedad inicia una excepción.

Evite iniciar excepciones desde los captadores de propiedades.

Los captadores de propiedades deberían ser operaciones simples sin ninguna condición previa. Si un captador podría iniciar una excepción, considere rediseñar la propiedad para que sea un método. Esta recomendación no es aplicable a los indizadores. Los indizadores pueden iniciar excepciones a causa de argumentos no válidos.

Es válido y aceptable iniciar excepciones desde un establecedor de propiedades.

Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.

Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.

Para obtener más información sobre las directrices de diseño, consulte “las instrucciones de diseño de Framework: Convenciones, frases realizadas y modelos para libro de bibliotecas reutilizables de .NET” de Krzysztof Cwalina y Brad Abrams, publicados por Addison-Wesley, 2005.

Vea también

Otros recursos

Instrucciones de diseño de miembros

Instrucciones de diseño para desarrollar bibliotecas de clases