Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Klassen instanziieren = alle Properties sind Null
reloop
myCSharp.de - Member

Avatar #avatar-3256.jpg


Dabei seit:
Beiträge: 139

Themenstarter:

Klassen instanziieren = alle Properties sind Null

beantworten | zitieren | melden

Moderationshinweis von herbivore (29.11.2010 - 09:18)

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


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
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 6.862
Herkunft: Esslingen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von reloop
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.
private Nachricht | Beiträge des Benutzers
Stipo
myCSharp.de - Member

Avatar #avatar-2966.gif


Dabei seit:
Beiträge: 699
Herkunft: Lörrach

beantworten | zitieren | melden

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

Grüße Stephan
private Nachricht | Beiträge des Benutzers
reloop
myCSharp.de - Member

Avatar #avatar-3256.jpg


Dabei seit:
Beiträge: 139

Themenstarter:

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von reloop am .
private Nachricht | Beiträge des Benutzers