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