Fields Instanzieren in der Deklaration

Person _person = new Person();

public Foo()
{
}

oder

Person _person;

public Foo()
{
_person = new Person();
}

Bei der Frage, ob Instanz-Felder einer Klasse (Fields) bei der deklaration, oder im Konstruktor initialisiert werden, kann man folgende Hinweise beachten:

  1. Aus der Sicht von Performance und Compiler macht es KEINEN Unterschied
  2. Grundsätzlich sollten / müssen Variablen nie mit dem Default-Wert initialisiert werden. (null,false,0 …)
  3. Wenn der Konstruktor die Variable nicht verändert, soll die Initalisierung in der Deklaration erfolgen
  4. Wenn der Kontruktur einen Parameter enthält, der die Variable verändert, dann soll die Initialisierung im Konstruktor erfolgen
  5. Be consistent in your practice.

Bei der Betrachtung muss auch beachtet werden, was geschieht bei Ableitungen, Polymorphismus und bei Chaining.

Wird der Konstruktor überschrieben, kann es eine Fehlerquelle sein, dass in der überschriebenen Variante vergessen wird, die Variabeln zu initialisieren. Es kann dann also ein Vorteil sein, wenn die Variable bei der Deklaration Initialisiert wird.

Leave a Reply

  

  

  

*