Quando ho iniziato a lavorare con i linguaggi di programmazione orientati agli oggetti, mi è stato insegnato la seguente regola:Perché le variabili membro dovrebbero essere inizializzate nei costruttori?
Quando si dichiara un campo in una classe, non inizializzare ancora. Fallo nel costruttore.
Un esempio in C#:
public class Test
{
private List<String> l;
public Test()
{
l = new List<String>();
}
}
Ma quando qualcuno recentemente mi ha chiesto il motivo per cui a farlo, non ho potuto trovare una ragione. Non ho molta familiarità con il funzionamento interno di C# (o altri linguaggi di programmazione, per quanto mi riguarda, poiché credo che ciò possa essere fatto in tutte le lingue OO).
Quindi perché è questo fatto? È sicurezza? Proprietà?