Compartilhar via


Não declarará campos de instância visível

TypeName

DoNotDeclareVisibleInstanceFields

CheckId

CA1051

Category (Categoria)

Microsoft.Design

Quebrando alterar

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 sistema autônomo um detalhe de implementação.Os campos devem ser private ou internal e devem ser expostas, usando propriedades. Acessar uma propriedade é tão fácil quanto ao acessar um campo e pode alterar o código de acessadores da propriedade sistema autônomo recursos do tipo de expandir sem introduzir alterações significativas.Propriedades que retornam apenas o valor de um campo particular ou internal são otimizadas para executar em comparação com acesso a um campo; não há nenhum ganho de desempenho associado ao 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 no Visual Basic) níveis de acessibilidade.

Como corrigir violações

Para corrigir uma violação dessa regra, verifique o campo private ou internal e expô-lo usando uma propriedade visível externamente.

Quando suprimir avisos

Não suprimir um aviso da regra.Campos visíveis externamente não fornecem nenhum benefício não está disponíveis para propriedades.Além disso, os campos públicos não podem ser protegidos por Demandas de link. Consulte Tipos protegidos não devem expor campos.

Exemplo

O exemplo a seguir mostra um tipo (BadPublicInstanceFields) que viola essa regra. GoodPublicInstanceFields mostra 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

Tipos protegidos não devem expor campos

Consulte também

Conceitos

Demandas de link