ページ

2006年4月18日火曜日

Re: Nullableを含めた3項演算子

中さんのところの Nullableを含めた3項演算子 に反応。


なるほど。3項演算子は 2項目と 3項目の型だけで 3項演算子の評価結果の型を判断してて、その評価結果がどう使われてるかまでは考慮してないんでしょうね。まぁ、これはこれで仕方ないような気はします。


けど、if 文にまでしなくても int? であることを教えてあげればコンパイルできると思うんですが、それではダメですか?
  int? ユーザID = row == null ? (int?)null : row.ユーザID;
もしくは
  int? ユーザID = row == null ? null : (int?)row.ユーザID;
てな感じで。

4 件のコメント:

  1. ふむ。int?.Null なんてのが自動的に定義されると、もっとキレイに書ける??

    返信削除
  2. > ふむ。int?.Null なんてのが自動的に定義されると、もっとキレイに書ける??


    なるほど、Nullable<T> を返す Null プロパティが Nullable<T> にあれば、、、ということですね。

    けど、個人的には (int?)null で十分わかりやすいような気がw


    VB とかではどうなんだろ。そもそも今回のように 「int? 型の null」 が必要になる場面ってあるんだろうか?

    返信削除
  3. うーん、row 自体が null な時はそもそも ユーザ ID 取り出したりしないかも。

    返信削除