無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

VB.NETをつつく28−Null許容型。白黒つけられない時もある。

今回はNull許容型をつつくピヨ。Null許容型というのは、その名の通りNullを許す値型の事なんだ。値型というのは、Integer、Short、Booleanなどのシステム型(組み込み型)の事なんだ。じゃあなんでこんなのが必要なのかというと、主な理由はDataBaseでNull値を結構使うからなんだ(トラブルの元だけどね)Null値を使うことの意義について分かりにくいと思うので、例を挙げて説明するピヨ。
例えば、付き合っている異性からいきなり「私と結婚する?YesかNoで答えなさいぃ!」と言われたら慌てるよね?そりゃ、好きだから付き合っているんだけど、いきなり結婚といわれてもYesと言えないし、かといって、将来結婚するかもしれないからNoと断言できないし・・・こんな白黒つけられないBoolean型な時は、現状ではどちらとも言えない(Null)と答えよう♪それがNull許容型なんだ。 こんな時はこう宣言するといいピヨ。


'結婚するかまだわからない
Dim marryFlag As Nullable(Of Boolean) = Nothing


Nullable(Of 値型名)で宣言するピヨ。
これでゆっくりと結婚について考えられるピヨ♪そして時が経てば・・・


'時が経って
If marryFlag.HasValue = True Then
    Console.WriteLine("さあどっち?")
    Console.WriteLine("私の答えは・・・{0}だ。", marryFlag.Value)
Else
    Console.WriteLine("優柔不断な人ね!")
End If


この二人のプログラムをつつこう♪まずNullかどうかを判定するのは HasValueピヨ。このプロパティの値がTrueならばNullでなくて、FalseならばまだNullなんだ。 Null許容型を扱う際にはHasValueをチェックしよう。 まだ決断していないかもしれないからね。チェックしないと・・・

InvalidOperationException
Null 許容のオブジェクトには値を指定しなければなりません。

って言われるよ。二人の仲は破談だね。最初に言ったけどBoolean型以外の値型もNull許容型が使えるピヨ。この場合はまだ決定してない値と考えるといいピヨ。 例えば、給与の手取り額がまだわからない時がある。そんな時はNull許容型を使用しよう。 他にもNull許容型を使用する理由として、指定されたのか判定するためという事もあるんだ。もし、0とかだと、0と指定したのか、そもそも指定していないのかがわからないピヨ。そんな時はNull許容型の出番だピヨ。
ただし、Null許容型はパフォーマンスが劣化 する事に注意してね。だから多用せずに絶対に必要なときだけ使用しよう。インドリからのお願いだよ。
別窓 | VB.NET | コメント:0 | トラックバック:0 | ∧top | under∨
<<C#をつつく28−Null許容型。白黒つけられない時もある。 | 無差別に技術をついばむ鳥 | ソフトウェア工学をつつく5−構造化プログラミング誕生。GOTOは有害?>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

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

∧top | under∨
| 無差別に技術をついばむ鳥 |