C++/CLIをつつく28−Null許容型。白黒つけられない時もある。2008-08-08 Fri 13:13
今回はNull許容型をつつくピヨ。Null許容型というのは、その名の通りNullを許す値型の事なんだ。値型というのは、System.Int32、System.Int16、System.Booleanなどのシステム型(組み込み型)の事なんだ。じゃあなんでこんなのが必要なのかというと、主な理由はDataBaseでNull値を結構使うからなんだ(トラブルの元だけどね)Null値を使うことの意義について分かりにくいと思うので、例を挙げて説明するピヨ。
例えば、付き合っている異性からいきなり「私と結婚する?YesかNoで答えなさいぃ!」と言われたら慌てるよね?そりゃ、好きだから付き合っているんだけど、いきなり結婚といわれてもYesと言えないし、かといって、将来結婚するかもしれないからNoと断言できないし・・・こんな白黒つけられないSystem.Boolean型な時は、現状ではどちらとも言えない(Null)と答えよう♪それがNull許容型なんだ。 こんな時はこう宣言するといいピヨ。
Nullable< 値型名 >^ で宣言するピヨ。 これでゆっくりと結婚について考えられるピヨ♪そして時が経てば・・・
この二人のプログラムをつつこう♪まずNullかどうかを判定するのは HasValueピヨ。このプロパティの値がTrueならばnullでなくて、Falseならばまだnullなんだ。 Null許容型を扱う際にはHasValueをチェックしよう。 まだ決断していないかもしれないからね。チェックしないと・・・ InvalidOperationException Null 許容のオブジェクトには値を指定しなければなりません。 って言われるよ。二人の仲は破談だね。最初に言ったけどbool型以外の値型もNull許容型が使えるピヨ。この場合はまだ決定してない値と考えるといいピヨ。 例えば、給与の手取り額がまだわからない時がある。そんな時はNull許容型を使用しよう。 他にもNull許容型を使用する理由として、指定されたのか判定するためという事もあるんだ。もし、0とかだと、0と指定したのか、そもそも指定していないのかがわからないピヨ。そんな時はNull許容型の出番だピヨ。 ただし、Null許容型はパフォーマンスが劣化 する事に注意してね。だから多用せずに絶対に必要なときだけ使用しよう。インドリからのお願いだよ。 |
この記事のコメント> 値型というのは、System.Int32、System.Int16、System.Booleanなどのシステム型(組み込み型)の事なんだ。
組み込み型だけじゃありません。 |
コメントの投稿 |
||
|
|
||
| 管理者だけに閲覧 | ||
|
|
||
この記事のトラックバック |
|
| 無差別に技術をついばむ鳥 |
|