Laden...

Klassen instanziieren = alle Properties sind Null

Erstellt von reloop vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.308 Views
reloop Themenstarter:in
139 Beiträge seit 2010
vor 13 Jahren
Hinweis von herbivore vor 13 Jahren

Unzutreffende Aussage/Annahme schon hier im Eingangspost gestrichen, damit sich keiner etwas falsches aneignet.

Klassen instanziieren = alle Properties sind Null

Hallo,

kurz und knapp:

Ich habe eine Klasse "FooBar". Diese bestizt 2 Properties vom Typ "string". (Wichtig, 'string' ist klein geschrieben und wird meines Wissens deshalb auch automatisiert beim instanzieren mit dem Standard string-wert belegt (String.Empty).

Wenn ich nun schreibe:

var myClass = new FooBar();

sind die beiden Properties in myClass aber mit "null" belegt und nicht mehr mit "".

Ich weiß nicht was ich geändert habe um diesen Zustand herbei zu führen, jedoch ist es mehr als störend und ich kriege es nicht mehr weg. Ich könnte jetzt im Konstruktor der Klasse die Werte manuell auf String.Empty setzen, aber das wäre ja nicht Sinn der Sache.

Vielleicht habt ihr ja einen Tipp?

Gruss,
reloop

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

strings sind Referenztypen. Wenn du keinen Wert setzt werden diese mit null initialisiert - ist ganz normales Verhalten und war schon immer so.

Baka wa shinanakya naoranai.

Mein XING Profil.

5.742 Beiträge seit 2007
vor 13 Jahren

Wichtig, 'string' ist klein geschrieben und wird meines Wissens deshalb auch automatisiert beim instanzieren mit dem Standard string-wert belegt (String.Empty).

Keine Ahnung, wo du das aufgeschnappt hast - wie talla schon gesagt hat, stimmt das nicht.
Es gibt keinerlei Unterschiede (außer der Farbgebung von VS 😉 ) zwischen string und String.

699 Beiträge seit 2007
vor 13 Jahren

Wenn ich mich recht entsinne, ist string nur ein Alias auf String.
So wie int ein alias auf Int32 ist.

Grüße Stephan

reloop Themenstarter:in
139 Beiträge seit 2010
vor 13 Jahren

Danke für eure Antworten.

Mir wurde damals während eines Lerhgangs mitgeteilt, dass das kleinschreiben des Schlüsselwortes die automatische initialisierung mit sich bringt.

Gut, dass ihr mich darauf hingewiesen habt.

Nach eigener Recherche bin ich, wie Stipo bereits angeführt hat, ebenfalls darauf gestoßen dass string lediglich einen Alias auf String abbildet.

Vielen Dank für eure Hilfe,

gruss,

reloop