2009-03-24 9 views
0

question stupide, mais cette affirmation ne vaut rienvalidation entier

int a; 

if (a != null) 

puisqu'un var entier est automatiquement réglé sur null par le compilateur lorsque défini

pour vérifier entiers toujours vérifier si> = 0 correct?

Répondre

2

Le compilateur définit la valeur d'une variable primitive à sa valeur « par défaut » si vous ne l'attribuez pas. La valeur par défaut de int est 0. Donc oui, la comparaison que vous mentionnez ne fait vraiment rien.

Si vous avez besoin d'un int nullable dans votre code, vous devez utiliser le type "null" "int?".

Si votre int est nullable, alors la comparaison que vous mentionnez pourrait être utile.

+0

merci. Que faire si vous n'utilisez pas un type nullable, alors mon hypothèse est vraie? – user72603

+0

Un "int" de base ne peut jamais être nul, vous n'avez donc pas besoin de vérifier null. Si votre code a besoin d'être nul, vous devriez utiliser int? plutôt que d'une «valeur magique int» qui signifie non attribué. –

+0

Vous pouvez vérifier int.minvalue dans le cas d'un int non nullable. Encore une fois, cela dépend de votre scénario. – Chuck

0

int est une classe, pas égal à null

+0

désolé, tard dans la nuit. voir la mise à jour – user72603

0

Oui à moins que l'entier ne soit un type Nullable.

int? myInt = null; 

if(myInt == null) 
{ 
    Console.WriteLine("myInt was null."); 
} 
0

En supposant par votre balise & syntaxe c'est C#, avez-vous essayé int.TryParse (...) dans votre scénario particulier? Pas vraiment sûr de ce que vous essayez de faire à partir du code fourni - comme Andy l'a mentionné si votre int est nullable, la vérification null peut être utile.

+0

Le code recherche un SelectedIndex pour voir s'il a une valeur (l'utilisateur a sélectionné une valeur dans un radiobuttonlist ou autre chose) – user72603

+0

Un SelectedIndex de -1 indique que rien n'a été sélectionné. Tout le reste indique la position de ListItem dans la collection Items (basée sur zéro). – Chuck

0

Un int est un type de valeur et ne sera jamais null, à moins que vous déclarez comme un entier annulable:

int? i = null; 
if (i == null) 
    Console.WriteLine("it's null"); 
+0

ah, donc il est initialisé à 0 par le compilateur. – user72603

+0

le bon lien j'ai trouvé: http://zone.ni.com/devzone/cda/ph/id/4/ – user72603