2009-08-14 4 views
59

可能性の重複をint型ません:
Nullable types and the ternary operator: why is `? 10 : null` forbidden?C#コードはコンパイルされません。ヌルとの間には暗黙の変換は

しないのはなぜこの作品?有効なコードのようです。

string cert = ddCovCert.SelectedValue; 
    int? x = (string.IsNullOrEmpty(cert)) ? null: int.Parse(cert); 
    Display(x); 

これはどのようにコードする必要がありますか?このメソッドはNullableをとります。ドロップダウンに文字列が選択されている場合、それをintに解析する必要があります。そうでなければ、メソッドにnullを渡します。私は同じことに遭遇しました

+4

重複(int型?) - http://stackoverflow.com/questions/858080を参照してください。/nullable-types-and-the-ternary-operator-why-wake-this-work –

+1

さらに詳しい情報はhttp://stackoverflow.com/questions/220250/in-c-why-cant-a-を参照してください。条件付き演算子で暗黙にキャストからヌル可能な型 –

答えて

195
int? x = string.IsNullOrEmpty(cert) ? (int?)null : int.Parse(cert); 
+0

がきれいです。ありがとう! – Hcabnettek

+0

時々私はそれを必要としますが、いつもここで忘れて終わります。おかげで – Steven

+0

私の時間を保存しました。ありがとう。 –

7

は...私は通常だけにヌルをキャスト

int? x = (string.IsNullOrEmpty(cert)) ? (int?)null: int.Parse(cert); 
関連する問題