2010-04-29 4 views
7

quel est l'entier nullable et où peut-il être utilisé?Nombre entier nul dans .NET

+3

J'ai supprimé les balises ASP.NET (-MVC), car ce n'est vraiment pas lié à ces deux technologies (c'est une fonctionnalité générale .NET). – M4N

+0

Notez que depuis .NET 2.0, tous les types de valeur peuvent être déclarés comme valables, pas seulement 'int'. http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx –

Répondre

15

L'entier NULL int? ou Nullable<int> est un type de valeur en C# dont la valeur peut être null ou une valeur entière. Il est par défaut à null au lieu de 0, et est utile pour représenter des choses comme value not set (ou ce que vous voulez qu'il représente).

+1

Également valide dans VB - Dim myInt As Integer? –

+0

'Dim myint comme Nullable of Integer '??' –

0

Im en supposant que vous voulez dire int? x; qui est un raccourci pour Nullable<int> x;

Ceci est un moyen d'ajouter aux types de nulls valeur, et est utile dans des scénarios tels que le traitement de base de données où les valeurs peuvent également être définies sur null. Par défaut, un type nullable contient null et vous utilisez HasValue pour vérifier si une valeur lui a été attribuée. Vous pouvez affecter des valeurs et l'utiliser comme un type de valeur normale.

+0

Cette syntaxe C# n'est pas valide. 'var' devrait être utilisé au lieu de déclarer le type d'une variable, c'est-à-dire lorsque le type de variable peut être déduit de son utilisation. –

+0

Trop de javascript. Fixé. –

8

Un entier nullable peut être utilisé de diverses manières. Il peut avoir une valeur ou null. Comme ici:

int? myInt = null; 

myInt = SomeFunctionThatReturnsANumberOrNull() 

if (myInt != null) { 
    // Here we know that a value was returned from the function. 
} 
else { 
    // Here we know that no value was returned from the function. 
} 

Disons que vous voulez connaître l'âge d'une personne. Il est situé dans la base de données SI la personne a soumis son âge. Si, comme la plupart des femmes, la personne n'a pas soumis son âge, alors la base de données contiendrait null.

Ensuite, vous vérifiez la valeur de age:

if (age == null) { 
    // The person did not submit his/her age. 
} 
else { 
    // This is probably a man... ;) 
} 
0

int? an;

vous pouvez les mettre dans les actions de votre contrôleur et si l'URL ne contient pas l'année, le paramètre année serait null, par opposition à 0 par défaut qui pourrait être une valeur valide pour votre application.

0

Un type NULL accepte son type de valeur et une valeur NULL supplémentaire.Utilisé pour les bases de données et autres types de données contenant des éléments auxquels une valeur peut ne pas être affectée.

0

Chaque fois que vous ne pouviez pas prédire le résultat ou la sortie de la logique métier particulière, optez pour des types Nullable.

Le type de valeur par défaut (Ex. Int) ne peut pas être nul. Il minimise une erreur tout en essayant d'attribuer une valeur nulle. Mais les types nullables ne le feront pas.

Merci.

Questions connexes