【Aモデル録 フェーズ1 C#基礎】

06-04:存在しない“参照”(null)

〜「箱が無い」のではない。「行き先が存在しない」〜


一言で言うと

👉 null(ヌル)とは、「何も指していない参照の状態」。

値でも
オブジェクトでも
空っぽでもない。

「参照が切れている」状態。


まず、超重要な前提

null は

👉 参照型だけが持てる特別な状態


最小コードで確認

SeizoBu seizoBu1 = null;

これ、何が起きてる?

📌 ヒープ上には、何も存在しない


図で見るとこう

seizoBu1
   ↓
  null


よくある勘違い(ここで潰す)

❌ null = 空のインスタンス

SeizoBu seizoBu1 = new SeizoBu();

これは:

👉 null とは真逆


❌ null = フィールドが未設定

SeizoBu seizoBu1 = new SeizoBu();
// まだコードを書いていない「DepartmentName」は null

👉 これは「部分的null」


一番やってはいけないこと

SeizoBu seizoBu1 = null;
seizoBu1.TargetNumber = 1000;

これを実行すると?

👉 即死


なぜ? これが有名な「null参照例外」

💥 NullReferenceException

意味:

「参照が null なのに、中を見に行った」

日本語にすると:

「行き先が存在しないのに、そもそも無いドアを開けようとした」


ドット記法との決定的関係

seizoBu1.TargetNumber

この書き方の前提は:

👉 「seizoBu1 が、何かを指している」

つまり、

seizoBu1 != null	// != は比較演算子「等しくない!」

が 暗黙条件。


超・実践的対処法(まずこれ)

null チェック

if (seizoBu1 != null)
{
    seizoBu1.TargetNumber = 1000;
}

意味:

「存在してたら、手順を実行できる」


List / 配列との接続

List 自体が null の場合

List<int> numbers = null;
numbers.Add(10); // 💥事故

List はあるが、中身が空

List<int> numbers = new List<int>();
numbers.Add(10); // OK

👉 「null」と「空」は別世界


会社イメージ(Aモデル)


今日の着地点(これだけ持って帰る)


先の学習との接続

nullが分かると:

👉 全部、一本につながる


構成と読み方|タイトル一覧

Top - はじめに|この忘備録と「Aモデル」について