回答編集履歴
6
指摘について
test
CHANGED
@@ -138,6 +138,16 @@
|
|
138
138
|
|
139
139
|
|
140
140
|
|
141
|
+
> 『(参照渡し)dsTestはメソッドA内で生成されるとメソッドAが持つメモリになるので遷移元で生成』
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
文脈がわからないですが、素直に受け取ると、「なに言ってんだこいつ」って感じです。
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
---
|
150
|
+
|
141
151
|
|
142
152
|
|
143
153
|
「参照渡し」と「参照型変数の値渡し」は
|
5
コード修正
test
CHANGED
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
|
116
116
|
|
117
|
-
Shared sub B(ByRef h)
|
117
|
+
Shared sub B(ByRef h as Hoge)
|
118
118
|
|
119
119
|
h = new Hoge()
|
120
120
|
|
4
表現を柔らかく
test
CHANGED
@@ -142,6 +142,6 @@
|
|
142
142
|
|
143
143
|
「参照渡し」と「参照型変数の値渡し」は
|
144
144
|
|
145
|
-
それなりにプログラム組める人でも混同しているので
|
145
|
+
それなりにプログラム組める人でも混同していることがあるので
|
146
146
|
|
147
147
|
注意です。
|
3
参照渡しと参照型の値渡しについて
test
CHANGED
@@ -135,3 +135,13 @@
|
|
135
135
|
|
136
136
|
|
137
137
|
呼び出し元に影響します。
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
「参照渡し」と「参照型変数の値渡し」は
|
144
|
+
|
145
|
+
それなりにプログラム組める人でも混同しているので
|
146
|
+
|
147
|
+
注意です。
|
2
2について
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
ret = A()
|
16
16
|
|
17
|
-
Console.WriteLine (ret.AskIfDisposed())
|
17
|
+
Console.WriteLine (ret.AskIfDisposed()) ' ここがどうなるか?
|
18
18
|
|
19
19
|
return 0
|
20
20
|
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
Finally
|
36
36
|
|
37
|
-
h.FakeDispose()
|
37
|
+
h.FakeDispose() 'ここをコメントアウトしてみたりすると
|
38
38
|
|
39
39
|
End Try
|
40
40
|
|
@@ -80,4 +80,58 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
|
83
|
+
呼び出し元に影響します。
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
続いて2.
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```VB
|
92
|
+
|
93
|
+
public class compiler
|
94
|
+
|
95
|
+
shared function Main as integer
|
96
|
+
|
97
|
+
' Here your code !
|
98
|
+
|
99
|
+
Dim ret as Hoge = Nothing
|
100
|
+
|
101
|
+
B(ret) 'ここをコメントアウトしてみたりしなかったりすると
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
if ret IsNot Nothing
|
106
|
+
|
107
|
+
Console.WriteLine ("not null") 'ここが表示されるか?
|
108
|
+
|
109
|
+
End if
|
110
|
+
|
111
|
+
return 0
|
112
|
+
|
113
|
+
End function
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
Shared sub B(ByRef h)
|
118
|
+
|
119
|
+
h = new Hoge()
|
120
|
+
|
121
|
+
End sub
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
end class
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
class Hoge
|
130
|
+
|
131
|
+
end class
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
呼び出し元に影響します。
|
1
結論の追記
test
CHANGED
@@ -77,3 +77,7 @@
|
|
77
77
|
end class
|
78
78
|
|
79
79
|
```
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
まあ当然呼び出し元に影響します。
|