2016-05-25 3 views
0

私のListentryがnullであるかどうかをチェックしたいが、私は方法がわからない。整数== nullを確認する

注: IDは整数

であるここに私のコードは、intはNULLにすることはできません

if(MeineGaeste[i].ID !=null) 
{ 
    i++; 
} 
else 
{ 
    MeinGast.ID = i++; 
    test = false; 
} 
+4

整数をnullにすることはできません。 'int'または' int? 'として宣言されていますか? – Blorgbeard

+1

'ID'メンバが' int'として__declared__である場合、比較 'ID!= null'は無意味です。あなたはそれについてのコンパイル時の警告を得るでしょう。 –

答えて

6

前述のように、intをnullにすることはできません。値が設定されていない場合、デフォルト値は0と考えられます。もしそれが0に設定されていると思われる場合は0をチェックすることができます。

それ以外の場合、ヌル可能な整数を避けることが大切だとすれば、それを文字列に変換してからチェックを実行する必要があります。あなたはif文にそれを固執することができますように、ブール値を返します

String.IsNullOrEmpty(ID.ToString()); 

+0

それは素晴らしいです!私はそれを行います:)ありがとう – Yannik

+0

助けがあれば、恐ろしい答えとしてマークしてください! – arbabk

4

です。一方、null可能なint、int?は可能です。あなたがしたいという小切手は無意味だと言われています。

IDのタイプをintからint?に変更することは意味を持ち、コンパイラはそれに不平を感じません。

+0

ypuさん、ありがとうございました。しかし、私はどのようにintを使用できますか?私のプログラムでは? – Yannik

+0

お返事ありがとうございますが、私はintを使用することができますか?私のプログラムで?これは私の学校プロジェクトの小片です。 – Yannik

+0

@大歓迎です。それはあなたがしたいことにかかっています。正直言って、私は何を達成しようとしているのか分からない。しかし、私があなたの投稿から推測することができる最初のことは、IDのタイプを 'int'から' int'に変更することです。 – Christos

0

通常、intタイプは値タイプですので、nullにすることはできません。

あなたは基本的にnullまたは任意のint値を可能にする構造体であり、財産IDためのNULL可能タイプint?を使用することができます。追加のドキュメントについては、MSDNまたはthis questionまたはthis questionを参照してください。

IDプロパティのタイプを変更できない場合は、モデルに表示されないことが保証されているマーカー値として整数を選択できます(たとえば、Int32.MinValue)。生成されるIDの多くは正のようです整数)。 これが必要ない場合は、これを行わないでください。エラーが発生する可能性が最も高いためです。そのマーカー値でモデルをシリアル化する場合は、例外をスローすることをお勧めします。

+0

ありがとう、私はそれを知っている、私の質問は完璧ではなかった..私は代替が必要です。 – Yannik

関連する問題