Domanda

Public Class FooBar
{
    private int _foo;

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

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

Esiste una pratica più accettata per accedere ai campi o alle proprietà (se presenti) in una classe? Ho sempre avuto l'abitudine di accedere al campo, ma da quando ho fatto WPF che ha un sacco di INotifyPropertyChanged, mi sono ritrovato a dover accedere alla proprietà per cambiare la notifica. Quindi ora ho un mix di accessi sia a campi che a proprietà durante le mie lezioni e mentre dal punto di vista del compilatore non importa, stilisticamente e leggibilità, mi sembra ... imbarazzante.

È stato utile?

Soluzione

Vi sono certamente casi in cui l'accesso alla proprietà non ha senso (ad esempio, se si implementasse la proprietà stessa). Mettendo da parte questi casi, andrei con lo stile della proprietà di default (a meno che non abbia un motivo specifico per non farlo). L'accesso al campo tramite la proprietà indirizzerà tutte le modifiche in un unico percorso di codice rendendo più semplice l'implementazione e il debug e può essere meno soggetto a errori.

Altri suggerimenti

Molto di questo dipende dallo stile personale. Non esiste una risposta giusta o sbagliata al 100% qui.

La mia preferenza è quella di esaminare la proprietà ogni volta per un paio di motivi

  • Semplifica il debug in quanto è possibile interrompere l'accesso alla proprietà e vedere tutti i get / set del valore. Non possibile con un campo
  • Coerenza: in alcuni casi, come le proprietà automatiche, non è possibile accedere direttamente al campo di supporto. Passare attraverso la proprietà ogni volta mostra lo stesso codice accedendo allo stesso valore.
  • Prestazioni: le proprietà semplici sono probabilmente evidenziate da JIT, quindi il problema delle prestazioni è di solito un punto muto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top