Null対策
Java1.xが長い私にとってはNull比較は必須だったので、勘違いしていたことを記述します。
C#の場合(ほとんど同じだと思いますが)
| 記号 | 名称 | 役割 |
|---|---|---|
?(型の後ろ) | nullable 修飾子 | null を許容する型を作る |
?? | null 合体演算子 | 左が null のとき右を返す |
??= | null 合体代入演算子 | 左が null のとき右を代入する |
??(合体演算子の便利さに勘違い)
PHPで覚えましたが、これ便利ですよね。
var txt = "";
if (texts[0] != null) {
txt = texts[0];
}
// 上の4行が下の1行で済みます。
var txt = texts[0] ?? "";
// このノリで以下の様にしていると自動でnull処理してくれるのかなと思っていましたw。
string? txt = texts[0];
?(nullable 修飾子)はあくまでnullの可能性があることを開発者に伝えるものなんですね。
なのでnull比較は必須にしないと事故が起こる可能性があります。
最近のIDEは警告を付けてくれるので大変ありがたいですね。
とか言いながら今VB6をやってたりするのですが・・・。
苦しい言い訳
特にJava経験者だと「ぬるぽ」が当たり前なので「何故、今更nullを意識しないといけないのか?」と思った私のような方も少しはいるのではないでしょうか。
理屈がわかれば非常に有用な仕組みですね。
