null かもしれないぷよぐらみんぐのススメ
あなたが null に触れるには、ミスリルでできた魔法のガントレットを付ける必要がある。
さもなければあなたは null に触れた瞬間に NullReferenceException によって吹き飛ばされてしまうに違いない。
多くのぷるぐらまー*1が うっかり null を素手で掴んでしまい、帰らぬ人となっているようだ。
かく言う私もうっかり null を素手で掴んでしまい、ヨルダンあたりまで吹き飛んだことがあるので、気をつけているのだが、 みなさんも突然の NullReferenceException でオフィスの天井に穴を開けないように十分注意して欲しい。
厭な匂いのするコード
次のコードを見て欲しい:
/* * .... すごく長いコード */ this.Hoge = hoge.ToString(); /* * .... これまたすごく長いコード */
お分かりだろうか?
宇宙の彼方からやってきたであろう hoge
を ToString()
している。
でも、ちょっと待って! hoge
が null
だったら?
null
をレシーバにして ToString()
を呼ぶと…、わぁお! NullReferenceException がぶっ飛んであなたは 100m 後ろに吹っ飛ぶ。
危なかったね。
ここで考えなくてはいけないことは hoge
が null
である場合、this.Hoge
に何を設定するべきだろうか? ということだ。
普通に string.Empty
を設定すれば良いこともあるけれど、そうじゃなくて何か他の定数を設定するべきだってケースもあるだろう。
null
の問題はあなたに豆腐がスーパーに売っていなかった時みたいなあんまり考えたくないようなことについて考えさせる*2。
その時は? そう、別のスーパーに行くんだ。
おしまい。