Pergunta

Public Class FooBar
{
    private int _foo;

    public int Foo { 
        get { return _foo; }
        set { _foo = value; }
    }

    public void DoStuff()
    {
        _foo++; // Do this?
        Foo++; // Or this?
    }
}

Existe uma prática mais aceita para qualquer um dos campos de acesso ou propriedades (se houver) em uma classe? Eu sempre fui o hábito de acessar o campo, mas desde que eu venho fazendo WPF que tem um monte de INotifyPropertyChanged, eu me encontrei a necessidade de acesso a propriedade para obter a notificação alterada. Então agora eu tenho uma mistura de ambos campo e propriedade acessa durante todo minhas aulas e ao mesmo tempo a partir de um compilador ver ponto-de-não importa, estilisticamente e legibilidade, parece ... estranho.

Foi útil?

Solução

Há certamente casos que acessar a propriedade não faz sentido (por exemplo, se você estava implementando a propriedade em si). Colocar esses casos à parte, eu iria com estilo propriedade por padrão (a menos que eu tenha um motivo específico para não). Acessando o campo através da propriedade vai dirigir todas as mudanças em um único caminho de código fazendo mudando a implementação e depuração mais fácil e pode ser menos propenso a erros.

Outras dicas

Um monte de este se resume ao estilo pessoal. Não há certo 100% ou resposta errada aqui.

A minha preferência é ir até a propriedade de cada vez para um par de razões

  • torna a depuração mais fácil, pois você pode quebrar no acesso a propriedade e ver tudo o get / set do valor. Não é possível com um campo
  • Consistência: Em alguns casos, tais como propriedades de automóveis, não é possível ir directamente para o campo de apoio. Atravessar a propriedade toda vez mostra o mesmo código de acesso ao mesmo valor.
  • Performance: propriedades simples são provável inlined pelo JIT para que o problema de desempenho é geralmente um ponto mudo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top