Wert der nicht zugewiesenen nicht nullbaren Variablen (C #)

7

Nur neugierig.

Wenn du gehst:

%Vor%

Sein Wert ist null.

Aber wenn du gehst:

%Vor%

Was ist der Wert dieser Variablen in C #?

Danke

David

    
David 28.05.2010, 13:19
quelle

6 Antworten

26

Beachten Sie, dass dies nur für Felder gilt, nicht für lokale Variablen - diese können erst gelesen werden, wenn sie zugewiesen wurden, zumindest innerhalb von C #. Tatsächlich initialisiert die CLR Stack-Frames auf 0, wenn Sie ein entsprechendes Flag gesetzt haben - was ich glaube, dass es standardmäßig ist. Es ist jedoch nur selten zu beobachten - Sie müssen durch einige grotte Hacks gehen.

Der Standardwert von int ist 0 - und für jeden Typ ist es im Wesentlichen der Wert, der durch ein Bitmuster voller Nullen dargestellt wird. Bei einem Werttyp entspricht dies dem Aufruf des parameterlosen Konstruktors und bei einem Referenztyp null.

Grundsätzlich löscht die CLR den Speicher mit Nullen.

Dies ist auch der Wert von default(SomeType) für einen beliebigen Typ.

    
Jon Skeet 28.05.2010, 13:23
quelle
5

Standardwert von int ist 0

    
Itay Karo 28.05.2010 13:20
quelle
5

Der Standardwert für int ist 0.

Hier finden Sie die vollständige Liste der Standardwerte pro Typ: Ссылка

    
Blorgbeard 28.05.2010 13:21
quelle
2

Hier ist eine Tabelle mit Standardwerten für Werttypen in C #: Ссылка Der Standardwert für Referenztypen ist normalerweise null.

    
tpeczek 28.05.2010 13:23
quelle
2

String ist ein Referenztyp. Int ist ein Werttyp. Referenztypen sind einfach ein Zeiger auf den Stack, der auf den Heap ausgerichtet ist und einen Wert enthalten kann oder auch nicht. Ein Werttyp ist nur der Wert auf dem Stapel, aber er muss immer auf etwas gesetzt werden.

    
Ty. 28.05.2010 13:23
quelle
1

Der Wert für eine unitäre Variable vom Typ T ist immer default(T) . Für alle Referenztypen ist dies null und für die Werttypen siehe den Link, den @Blorgbeard gepostet hat (oder schreibe etwas Code, um es zu überprüfen).

    
Klaus Byskov Pedersen 28.05.2010 13:24
quelle