参照は身近な例だと掲示板のレス番号とかですかね…?
===============
|No1 hogeさん
ばーか
|No2 fugaさん
1
そういうのはよくないよ
|No3 piyoさん
「ばーか」なんてやめなよ
===============
fugaさんの書き込みである>>1
は、No1の書き込みを参照しています。(1番の書き込みっていう形でどこにあるデータかを参照しています)
piyoさんの書き込みである「ばーか」なんてやめなよ」
は値そのものを抜き出しているので、参照ではないです。
あとは、よく話にでる「値渡し/参照渡し」とかを見ると分かりやすいですよ。
cs
1 string myMesseage = "めっちゃ好きやねん";
2
3 void Start() {
4
5 ThinkingMessage(myMesseage);
6 Debug.Log(myMesseage);
7 // 結果→ めっちゃ好きやねん
8
9 ThinkingMessage(ref myMesseage);
10 Debug.Log(myMesseage);
11 // 結果→ お前なんて嫌いだ
12 }
13
14 void ThinkingMessage(string _msg) {
15 _msg = "お前なんて嫌いだ";
16 }
17
18 void ThinkingMessage(ref string _msg) {
19 _msg = "お前なんて嫌いだ";
20 }
前者が値渡しです。渡した告白文は値渡しなのでもとのデータに影響がありません。ちゃんと愛の告白ができました。
しかし、後者は参照渡しです。myMessage
自体の参照を渡してしまっているのでメソッド内で改変ができてしまいます。よって、告白に失敗してしまいました。