値型と参照型を日常生活で考えてみよう!


値型:コピー用紙に書かれたメモ

どんな感じ?

  • 買い物リストを書いたコピー用紙を考えてみて!
  • コピー機で複製を作って友達に渡すよ。

ポイント

  • コピーを渡しているから、友達がリストを書き換えても、あなたの紙には影響なし!
  • 独立したものを扱っているイメージだよ。

イメージ図

あなたのリスト: 牛乳, パン
↓ コピー機でコピー
友達のリスト: 牛乳, パン
↓ 友達が変更
友達のリスト: 牛乳, パン, 卵  (でもあなたのリストはそのまま!)

参照型:ホワイトボードに書かれたメモ

どんな感じ?

  • ホワイトボードに「買い物リスト」を書いて、みんなで見ているイメージだよ。
  • ホワイトボードの位置を示す地図(リンク)をみんなに配るよ。

ポイント

  • 誰かがホワイトボードを消したり書き加えたりすると、全員が同じ変化を見る!
  • 1つのものを共有しているイメージだよ。

イメージ図

ホワイトボード: 牛乳, パン
↓ 地図(リンク)をみんなに配る
友達A: ホワイトボードを見て「牛乳, パン」
友達B: ホワイトボードに「卵」を追加!
全員: ホワイトボードが「牛乳, パン, 卵」に変わった!

まとめ:値型と参照型の違い

値型参照型
イメージコピー用紙ホワイトボード
扱い方独立している(コピーを作る)共有している(リンクを使う)
変更の影響他に影響しない全員に影響する

実際のコードで見てみよう!

// 値型の例(intは値型)
int a = 10;
int b = a;  // aのコピーをbに渡す
b = 20;     // bを変更してもaには影響なし
Console.WriteLine(a); // 出力: 10

// 参照型の例(配列は参照型)
int[] x = { 1, 2, 3 };
int[] y = x;  // xの「場所」をyに渡す
y[0] = 100;   // yを変更するとxも変わる
Console.WriteLine(x[0]); // 出力: 100

参照型

Posted by hidepon