CA1051: Não declarar os campos de instância visível
TypeName |
DoNotDeclareVisibleInstanceFields |
CheckId |
CA1051 |
<strong>Categoria</strong> |
Microsoft.design |
Alteração significativa |
Quebrando |
Causa
Um tipo visível externamente tem um campo de instância visível externamente.
Descrição da regra
O principal uso de um campo deve ser como um detalhe de implementação. Campos devem ser private ou internal e devem ser expostas por meio de propriedades. É tão fácil de acessar uma propriedade, conforme é acessar um campo, e o código no acessadores de uma propriedade pode alterar como os recursos do tipo expandir sem introduzir alterações significativas. Propriedades que basta retornam o valor de um campo private ou internal são otimizadas para executar em comparação com a acessar um campo; muito pouco ganho de desempenho é associado com o uso de campos visíveis externamente através de propriedades.
Refere-se visível externamente a public, protected, e protected internal (Public, Protected, e Protected Friend em Visual Basic) os níveis de acessibilidade.
Como corrigir violações
Para corrigir uma violação desta regra, tornar o campo private ou internal e expô-lo usando uma propriedade visível externamente.
Quando suprimir avisos
Não suprimir um aviso da regra. Os campos visíveis externamente não fornecem nenhum benefício que não está disponível para as propriedades. Além disso, os campos públicos não podem ser protegidos por Demandas de link. Consulte CA2112: Tipos protegidos não devem expor campos.
Exemplo
O exemplo a seguir mostra um tipo (BadPublicInstanceFields) que viola essa regra. GoodPublicInstanceFieldsmostra o código corrigido.
using System;
namespace DesignLibrary
{
public class BadPublicInstanceFields
{
// Violates rule DoNotDeclareVisibleInstanceFields.
public int instanceData = 32;
}
public class GoodPublicInstanceFields
{
private int instanceData = 32;
public int InstanceData
{
get { return instanceData; }
set { instanceData = value ; }
}
}
}
Regras relacionadas
CA2112: Tipos protegidos não devem expor campos