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

05-05-2:参照(Reference)本編

〜「同じものを見ている」って、どういうこと?〜


一言で言うと

👉 参照とは、「値そのものではなく、“置き場所(アドレス = メモリ上の住所)”を共有すること」。

これがすべてです。
難しく聞こえたら、今日はここだけ覚えてください。


※この記事は「C#基礎“知識”講座の忘備録」の一部です。
超初学者が、AI先生との対話を通して理解した内容を
自分なりの言葉でまとめています。


まず結論(混乱防止)

C#の世界には、大きく2種類あります。

種類 振る舞い
値型 コピーされる
参照型 同じ実体を指す

👉 今日やるのは 参照型の話。


会社イメージで一気に整理

値型(これまで無意識にやってた世界)

👉 安全・直感的


参照型(ここからの世界)

👉 強力・危険


クラスとインスタンスは、最初から参照型

ここ、めちゃくちゃ重要です。

SeizoBu a = new SeizoBu("田中");

このとき何が起きているか。

つまり、

👉 aは「製造部」そのものではない
👉 「製造部が置いてある場所を知っている変数」


参照をコピーすると、何が起きるか

SeizoBu a = new SeizoBu("田中");
SeizoBu b = a;

この瞬間:

    [a]
     ↓
[ SeizoBu(Name="田中") ]
     ↑
    [b]

👉 a と b は 同じ SeizoBu インスタンスのアドレスを参照している

この、「アドレスを参照している」というのが、ポイント。


混乱ポイント①

「え、コピーしたんじゃないの?」

してません。

これが参照。


実害が出る例(超重要)

b.Name = "佐藤";
Console.WriteLine(a.Name);

結果:

佐藤

👉 aは何もしてないのに変わった

これが、

「参照の危険性」

の正体です。


なぜ、こんな面倒な仕組みがあるのか

理由はシンプル。

1. 実体が重いから

👉 1つを共有したい


2. 状態を共有したいから

👉 「全員が同じデータを見ている」


参照の責任(ここが実務)

参照型を扱うということは:

だから、

👉 「誰が変更していいか」を設計で縛る

これが次につながります。


コンストラクタと参照は、完全にセット

ここで、これまでの流れが一本になります。

new
 ↓
コンストラクタ
 ↓
安全な初期状態
 ↓
参照で共有
 ↓
メソッドで操作

👉 初期状態が壊れてたら、参照地獄

だからコンストラクタが
あんなに「めんどくさい」。


今日の着地点

今日はこれで満点です。

補足:


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

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