2006年02月06日

is int? の落とし穴

   このエントリーをはてなブックマークに追加 Clip to Evernote
C#2.0には、nullable typeが導入されましたが、nullable typeを調べていて、ちょっと、不思議な動きを見つけました。

int? n = null;
bool b1 = n is int?;
int? m = 123;
bool b2 = m is int?;

なぜか、b1とb2の値は異なります。b1はfalseで、b2は、trueです。
is 演算子の定義からすれば、これは正しい動きなのですが、
ちょっと、直感から外れた結果となってしまいます。

まあ、こんなコード実際には書かないと思うけど。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50331486