Instanziieren Sie eine Eigenschaft der Typenliste

7

Ich habe eine Eigenschaft vom Typ List in meiner Klasse erstellt

%Vor%

Wenn ich jetzt einen String zur Liste hinzufügen möchte, versuche ich

%Vor%

Der Compiler schreit mich an und sagt, dass das Objekt nicht auf eine Instanz eines Objekts gesetzt ist. Wie kann ich eine Immobilie instanziieren?

    
Nick LaMarca 17.03.2011, 20:36
quelle

2 Antworten

17

Im Konstruktor müssen Sie

sagen %Vor%

All das

%Vor%

does ist eine automatische Eigenschaft vom Typ List<string> namens CategoryRef . Implizit hinter dieser auto-Eigenschaft ist ein Hintergrundfeld, aber dieses Hintergrundfeld erhält den Standardwert für Objekte vom Typ List<string> . Daher ist das Hintergrundfeld standardmäßig null und deshalb müssen Sie es im Konstruktor (oder woanders, aber vor der ersten Verwendung) festlegen.

Schließlich solltest du den Setzer wahrscheinlich nicht öffentlich bloßstellen. Zumindest ist es besser zu sagen

%Vor%

Wollen Sie wirklich, dass Kunden Ihrer Klasse eine neue Liste zu CategoryRef zuweisen können? Wahrscheinlich nicht.

Und in solchen Situationen bevorzuge ich tatsächlich eine manuelle Eigenschaft, damit ich das Hintergrundfeld nur lesen kann.

%Vor%     
jason 17.03.2011, 20:36
quelle
3

Im Konstruktor des Objekts sollten Sie eine Zeile haben, die die Eigenschaft auf eine neue Liste setzt.

%Vor%     
Jon 17.03.2011 20:38
quelle

Tags und Links