値型と参照型を日常生活で考えてみよう!
目次
値型:コピー用紙に書かれたメモ
どんな感じ?
- 買い物リストを書いたコピー用紙を考えてみて!
- コピー機で複製を作って友達に渡すよ。
ポイント
- コピーを渡しているから、友達がリストを書き換えても、あなたの紙には影響なし!
- 独立したものを扱っているイメージだよ。
イメージ図
あなたのリスト: 牛乳, パン
↓ コピー機でコピー
友達のリスト: 牛乳, パン
↓ 友達が変更
友達のリスト: 牛乳, パン, 卵 (でもあなたのリストはそのまま!)
参照型:ホワイトボードに書かれたメモ
どんな感じ?
- ホワイトボードに「買い物リスト」を書いて、みんなで見ているイメージだよ。
- ホワイトボードの位置を示す地図(リンク)をみんなに配るよ。
ポイント
- 誰かがホワイトボードを消したり書き加えたりすると、全員が同じ変化を見る!
- 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
ディスカッション
コメント一覧
まだ、コメントがありません