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?
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%Tags und Links c#