読者です 読者をやめる 読者になる 読者になる

null かもしれないぷよぐらみんぐのススメ

あなたが null に触れるには、ミスリルでできた魔法のガントレットを付ける必要がある。
さもなければあなたは null に触れた瞬間に NullReferenceException によって吹き飛ばされてしまうに違いない。

多くのぷるぐらまー*1が うっかり null を素手で掴んでしまい、帰らぬ人となっているようだ。

かく言う私もうっかり null を素手で掴んでしまい、ヨルダンあたりまで吹き飛んだことがあるので、気をつけているのだが、 みなさんも突然の NullReferenceException でオフィスの天井に穴を開けないように十分注意して欲しい。

厭な匂いのするコード

次のコードを見て欲しい:

/*
 * .... すごく長いコード
 */
this.Hoge = hoge.ToString();
/*
 * .... これまたすごく長いコード
 */

お分かりだろうか?

宇宙の彼方からやってきたであろう hogeToString() している。
でも、ちょっと待って! hogenull だったら?

null をレシーバにして ToString() を呼ぶと…、わぁお! NullReferenceException がぶっ飛んであなたは 100m 後ろに吹っ飛ぶ。

危なかったね。
ここで考えなくてはいけないことは hogenull である場合、this.Hoge に何を設定するべきだろうか? ということだ。
普通に string.Empty を設定すれば良いこともあるけれど、そうじゃなくて何か他の定数を設定するべきだってケースもあるだろう。

null の問題はあなたに豆腐がスーパーに売っていなかった時みたいなあんまり考えたくないようなことについて考えさせる*2。 その時は? そう、別のスーパーに行くんだ。

おしまい。

*1:知識を Google などから PULL するだけで脳内や外部記憶装置に COMMIT したり、あんまり踏み込みたがらないぷよぐやまーのこと。あんまり上等とは言えない

*2:時もあるよ。時と場合と次第によってね