意外と = null してる人が多くて。

◆怒られるやーつ

HogeClass hoge;
var hogehoge = hoge;

未割当のローカル変数 ‘hoge’ が使用されました。

うん。

◆解決するけどダサいやーつ

HogeClass hoge = null;
var hogehoge = hoge;

変数名が揃わなくてやな感じ。それに = nullってなんかダメじゃん。あの…あれだからダメじゃん。

◆カッコよくてモテるやーつ

var hoge = default(HogeClass);
var hogehoge = hoge;

これを使うと背が伸びるし、金持ちになる。視力良くなってメガネいらなくなって、Eラインもすごい。洋楽とカクテルに詳しくなるし、だからモテる。

◆これもありなやーつ

HogeClass hoge = default;

あり。ありよりのざりがに。

◆こんなこともできるやーつ

private static HogeClass Hoge(bool b)
{
    if (b) return new HogeClass();
    return default;
}

bがfalseならnullが返却される。

◆defaultは、つまりnullなの?

ちがう。default(int)は 0 になる。default(bool) は false。

既定値の一覧表

◆defaultってなに?

知るか。明日も早いんだろ。風呂入って寝ろ。

◆defaultって便利ね

便利なんだけど、nullがコードに沢山出てくるのは異常だから見直せ。nullを極力避けるコードを書け。やりようでnullはほぼ全て除去できる。そしてバグは少なくなるし、コードは読みやすくなる。

Null安全(Null Safety)という考え方がある。そして、C# 8.0だとnull非許容参照型という仕組みがある。うまく使え。

◆結論

子供のころねるねるねるねをあんまり買ってもらえなくて大人になったら沢山買おうと思ってたんだけど改めて食うと「そんなうまくねぇな」とは思えどもたまに食いたくなって食うと謎の満足感があるよね。