campos de acesso ou propriedades de dentro da classe declarando
-
06-07-2019 - |
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.
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.