Pourquoi int ne peut pas être null? Comment nullable int (int?) en C#?
Je suis nouveau en C# et viens d'apprendre que les objets peuvent être null en C# mais int
ne le peuvent pas.
Aussi comment ne nullable int (int?
) en C#?
J'aimerais investir dans un bon livre sur C#. Vous êtes lié pour avoir beaucoup plus de questions sur la syntaxe de base comme le présent et demander à chacun sur serait prendre beaucoup de temps.
stackoverflow.com/questions/6191339/...
Je vois que suis fermée comme une dupe de l'un jleedev associée, mais cette question est beaucoup plus spécifique à C# avec nullable types de valeur...
ppl sont plus intéressés par la fermeture des questions et trouver les doublons, plutôt que de regarder ce qui est demandé et d'y répondre. Cette question n'est pas de duplicata de toutes marquées, mais ppl ont encore marqué en double, reste convenu et fermé. Je pense qu'aucun d'entre eux semblaient à la question une fois.
stackoverflow.com/questions/6191339/...
Je vois que suis fermée comme une dupe de l'un jleedev associée, mais cette question est beaucoup plus spécifique à C# avec nullable types de valeur...
ppl sont plus intéressés par la fermeture des questions et trouver les doublons, plutôt que de regarder ce qui est demandé et d'y répondre. Cette question n'est pas de duplicata de toutes marquées, mais ppl ont encore marqué en double, reste convenu et fermé. Je pense qu'aucun d'entre eux semblaient à la question une fois.
OriginalL'auteur Rusi Nova | 2011-08-06
Vous devez vous connecter pour publier un commentaire.
int
est un type primitif et seulementReferenceType
s (objets) sont les valeurs null. Vous pouvez faire unint
nullable en l'enveloppant dans un objet:-ou-
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types/using-nullable-types
int?
plus lent queint
est? Faut-il utiliser plus de mémoire?ouais, s'amalgament dans un objet supplémentaire.
OriginalL'auteur Ilia Choly
Un int est un type valeur. C'est vraiment de type Int32. Les objets qui peuvent être nullable sont des types référence. À un niveau de base de la différence est qu'un type de valeur va stocker la valeur de la variable où un type de référence permettra de stocker une référence à la valeur. Une référence peut être null, ce qui signifie qu'il ne pointe pas vers une valeur. Lorsqu'une valeur de type a toujours une valeur.
Nullable encapsule une valeur de type pour vous permettre d'avoir la possibilité de valeur null. À l'aide de l'int? est seulement un compilateur raccourci pour déclarer un type nullable.
OriginalL'auteur Aaron Weiker
Vous pouvez avoir un nullable int en utilisant int? ou
Nullable<int>
les deux sont exactement la même chose.OriginalL'auteur Henry Tshobo
Types de valeur comme
int
contenir directement des valeurs plutôt que des références commeReferenceType
. Une valeur ne peut pas être nulle, mais une référence peut être nul, ce qui signifie qu'il pointe vers rien. Une valeur ne peut pas ne rien avoir en elle. Une valeur toujours contenir un type de valeurNullable ou les types Nullables sont spéciales types de valeur qui, en outre, à des valeurs normales de la valeur des types de soutien supplémentaires de la valeur null comme les types de référence
OriginalL'auteur Haris Hasan
Objets sont des types référence et qu'ils peuvent référencer rien ou NULLE, cependant int est un type de valeur, qui ne peut contenir qu'une valeur, et ne peut pas référencer n'importe quoi.
OriginalL'auteur Tony The Lion
Primitive de type int ne peut pas exprimer la valeur null dans sa représentation binaire, mais
Nullable<int>
ajouté un octet supplémentaire pour exprimer la valeur null informations de cette valeur.hasValue
à la définition de la structure d'exprimer la valeur null de type int, en outre, le CLR besoin d'être révisé un peu pour faire face à cette structure particulière quand on la compare avec la valeur null. La primitive int peut pas représenter la valeur null puisque tous ses binaire permutations représentent une valeur de type int, à la condition qu'il dispose de 4 octets dans la pile.Je n'ai pas downvote, mais il peut avoir été due à citant un obscur fait de la disposition de la mémoire, sans aucune documentation à l'appui. Sinon, je ne suis pas sûr.
OriginalL'auteur Thomson