Question

Juste curieux.

Si vous allez:

string myString;

Sa valeur est nulle.

Mais si vous allez:

int myInt;

Quelle est la valeur de cette variable en C #?

Merci

David

Était-ce utile?

La solution

Tout d'abord, noter que ceci est applicable uniquement pour les champs, et non variables locales - celles qui ne peuvent être lus jusqu'à ce qu'ils aient été affectés, au moins dans C #. En fait, les CLR Initialise pile cadres à 0 si vous avez un jeu de drapeau approprié - que je crois qu'il est par défaut. Il est bien que rarement observable -. Il faut passer par des hacks grotty

La valeur par défaut de int est 0 - et pour tout type, il est essentiel à la valeur représentée par une configuration de bits complète des zéros. Pour une valeur de type c'est l'équivalent d'appeler le constructeur parameterless, et pour une référence de type c'est nulle.

Fondamentalement, le CLR efface la mémoire propre avec des zéros.

Ceci est également la valeur donnée par default(SomeType) pour tout type.

Autres conseils

int par défaut est 0

La valeur par défaut est 0 int.

Voir ici pour la liste complète des valeurs par défaut par type: http: // msdn.microsoft.com/en-us/library/83fhsxwc.aspx

Voici un tableau des valeurs par défaut pour les types de valeurs en C #: http://msdn.microsoft.com/en-us/library/83fhsxwc. ASPX Types de référence valeur par défaut est généralement nulle.

chaîne est un type de référence. Int est un type de valeur. Les types de référence sont tout simplement un pointeur sur la pile dirigée vers le segment de mémoire, qui peut ou non contenir une valeur. Un type de valeur est juste la valeur sur la pile, mais il doit toujours être à quelque chose.

La valeur d'une variable non initialisée de type T est toujours default(T). Pour tous les types de référence c'est nulle, et pour les types valeur voir le lien @Blorgbeard affiché (ou écrire du code pour le vérifier).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top