Compartilhar via


Propriedade design

Em geral, os métodos representam ações e propriedades representam os dados. As propriedades são usadas como os campos, significando que propriedades não devem ser computacionais complexos ou produzir efeitos colaterais. Para obter informações adicionais sobre o design de propriedade, consulte Design de propriedade indexada e Eventos de notificação de alterar de propriedade.

As diretrizes a seguir ajudam a garantir que suas propriedades são bem projetadas.

Crie propriedades somente leitura se o chamador deve ser capaz de alterar o valor da propriedade.

Esteja ciente de que a mutabilidadede do tipo de propriedade afeta o que o usuário participante pode alterar. Por exemplo, se você definir uma propriedade somente leitura que retorna uma coleção de leitura/gravar, o usuário participante não é possível atribuir uma coleção diferente para a propriedade mas pode modificar os elementos na coleção.

Não oferecem propriedades somente do conjunto.

Se o getter de propriedade não pode ser fornecido, use um método para implementar a funcionalidade em vez disso. O nome do método deve começar com Set seguido o que seria o nome da propriedade. Por exemplo, AppDomain tem um método chamado SetCachePath em vez de ter uma propriedade somente conjunto chamado CachePath.

Fornecer valores padrão razoáveis para todas as propriedades, garantindo que os padrões não resultam em uma falha de segurança ou um projeto extremamente ineficiente.

Permitem propriedades sejam definidas em qualquer ordem, mesmo que isso resultados em um estado temporário objeto inválido.

Preserve o valor anterior se um setter de propriedade lança uma exceção.

Evite gerar exceções de getters de propriedades.

Propriedade getters devem ser operações simples, sem quaisquer condições. Se um getter pode lançar uma exceção, considere a possibilidade de projetar novamente a propriedade a ser um método. Essa recomendação não se aplica a indexadores. Os indexadores podem lançar exceções devido de argumentos inválidos.

É aceitável para lançar exceções a partir de um setter de propriedade e válido.

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Outros recursos

Diretrizes de design de membro

Diretrizes de Design para desenvolvimento bibliotecas de classe