質問編集履歴

2

不要な画像削除。

2018/02/20 15:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -155,7 +155,3 @@
155
155
  }
156
156
 
157
157
  ```
158
-
159
- ChangeRef()は下記のイメージで合っていますか?
160
-
161
- ![イメージ説明](5c1a5154890ec287167796d9e4e192c7.png)

1

追記

2018/02/20 15:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,103 @@
59
59
  }
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ ### 追記。
66
+
67
+
68
+
69
+ ChangeNoRef()で、l = new List<string>();したとき、何が起こっているのか分かりません。
70
+
71
+
72
+
73
+ ```C#
74
+
75
+ using System.Collections;
76
+
77
+ using System.Collections.Generic;
78
+
79
+ using UnityEngine;
80
+
81
+
82
+
83
+ public class Sample : MonoBehaviour {
84
+
85
+
86
+
87
+ // Use this for initialization
88
+
89
+ void Start () {
90
+
91
+ var list = new List<string>();
92
+
93
+ list.Add("Hello");
94
+
95
+ DebugList (list); //Hello
96
+
97
+
98
+
99
+ Debug.Log("変更します");
100
+
101
+ ChangeNoRef (list);
102
+
103
+ DebugList (list); //Hello
104
+
105
+
106
+
107
+
108
+
109
+ Debug.Log("変更します");
110
+
111
+ ChangeRef(ref list);
112
+
113
+ DebugList (list); //World
114
+
115
+ }
116
+
117
+
118
+
119
+ static void ChangeNoRef(List<string> l)
120
+
121
+ {
122
+
123
+ l = new List<string>(); //この行をコメントアウトしたら、Hello, Worldになる。
124
+
125
+ l.Add("World");
126
+
127
+ }
128
+
129
+
130
+
131
+
132
+
133
+ static void ChangeRef(ref List<string> l)
134
+
135
+ {
136
+
137
+ l = new List<string>();
138
+
139
+ l.Add("World");
140
+
141
+ }
142
+
143
+
144
+
145
+ void DebugList(List<string> l){
146
+
147
+ foreach (string s in l) {
148
+
149
+ Debug.Log (s);
150
+
151
+ }
152
+
153
+ }
154
+
155
+ }
156
+
157
+ ```
158
+
159
+ ChangeRef()は下記のイメージで合っていますか?
160
+
161
+ ![イメージ説明](5c1a5154890ec287167796d9e4e192c7.png)