2009-03-24 4 views
0

愚かな質問が、整数をチェックする整数の検証

を定義したとき、整数VARは、コンパイラによって自動的にnullに設定されているので、この文は

int a; 

if (a != null) 

無価値であるが、常に確認してください?

答えて

2

コンパイラをゼロに等しくないその「デフォルト」の値に原始的な変数の値を設定します。 intのデフォルト値は0です。だから、あなたが言及している比較は実際に何もしません。

コードにnull可能なintが必要な場合は、 "nullable"型の "int?"を使用する必要があります。

intがNULL可能な場合は、あなたが言及している比較が有用かもしれません。

+0

ありがとうございます。 null可能な型を使用しない場合は、私の前提が成り立ちますか? – user72603

+0

基本的な "int"はnullになることはありませんので、nullをチェックする必要はありません。あなたのコードにnullが必要な場合は、intを使うべきですか?割り当てられていないことを意味する「魔法のint値」ではなく、 –

+0

nullでないint型の場合、int.minvalueをチェックしたいかもしれません。繰り返しますが、シナリオによって異なります。 – Chuck

0

intはクラスであり、あなたがそれを割り当てない場合、

+0

申し訳ありませんが、夜遅く。アップデート – user72603

0

整数がNULL型でない場合は、はい。

int? myInt = null; 

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

自分のタグ&構文でこれですC#のを仮定すると、あなたの特定のシナリオにint.TryParse(...)を試してみましたか?あなたが提供しているコードから何をしようとしているのか分かりません。もしあなたのintがヌル可能であればAndyが述べたように、ヌルチェックは便利かもしれません。 int

+0

コードは、SelectedIndexが値を持っているかどうかをチェックしています(ユーザーがラジオボタンリストなどから値を選択した場合) – user72603

+0

SelectedIndexが-1の場合、何も選択されていないことを示します。それ以外は、Itemsコレクション内のListItemの位置を示します(ゼロベース)。 – Chuck

0

は値型であり、あなたがNULL可能整数として宣言しない限り、nullになることはありません:

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

ああ、コンパイラによって0に初期化されています。 – user72603

+0

いいリンクが見つかりました:http://zone.ni.com/devzone/cda/ph/p/id/4 – user72603