回答編集履歴
6
指摘について
answer
CHANGED
@@ -68,7 +68,12 @@
|
|
68
68
|
|
69
69
|
呼び出し元に影響します。
|
70
70
|
|
71
|
+
> 『(参照渡し)dsTestはメソッドA内で生成されるとメソッドAが持つメモリになるので遷移元で生成』
|
71
72
|
|
73
|
+
文脈がわからないですが、素直に受け取ると、「なに言ってんだこいつ」って感じです。
|
74
|
+
|
75
|
+
---
|
76
|
+
|
72
77
|
「参照渡し」と「参照型変数の値渡し」は
|
73
78
|
それなりにプログラム組める人でも混同していることがあるので
|
74
79
|
注意です。
|
5
コード修正
answer
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
return 0
|
57
57
|
End function
|
58
58
|
|
59
|
-
Shared sub B(ByRef h)
|
59
|
+
Shared sub B(ByRef h as Hoge)
|
60
60
|
h = new Hoge()
|
61
61
|
End sub
|
62
62
|
|
4
表現を柔らかく
answer
CHANGED
@@ -70,5 +70,5 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
「参照渡し」と「参照型変数の値渡し」は
|
73
|
-
それなりにプログラム組める人でも混同しているので
|
73
|
+
それなりにプログラム組める人でも混同していることがあるので
|
74
74
|
注意です。
|
3
参照渡しと参照型の値渡しについて
answer
CHANGED
@@ -66,4 +66,9 @@
|
|
66
66
|
end class
|
67
67
|
```
|
68
68
|
|
69
|
-
呼び出し元に影響します。
|
69
|
+
呼び出し元に影響します。
|
70
|
+
|
71
|
+
|
72
|
+
「参照渡し」と「参照型変数の値渡し」は
|
73
|
+
それなりにプログラム組める人でも混同しているので
|
74
|
+
注意です。
|
2
2について
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
shared function Main as integer
|
7
7
|
Dim ret as Hoge
|
8
8
|
ret = A()
|
9
|
-
Console.WriteLine (ret.AskIfDisposed())
|
9
|
+
Console.WriteLine (ret.AskIfDisposed()) ' ここがどうなるか?
|
10
10
|
return 0
|
11
11
|
End function
|
12
12
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
h = new Hoge()
|
17
17
|
Return h
|
18
18
|
Finally
|
19
|
-
h.FakeDispose()
|
19
|
+
h.FakeDispose() 'ここをコメントアウトしてみたりすると
|
20
20
|
End Try
|
21
21
|
End Function
|
22
22
|
|
@@ -39,4 +39,31 @@
|
|
39
39
|
end class
|
40
40
|
```
|
41
41
|
|
42
|
-
|
42
|
+
呼び出し元に影響します。
|
43
|
+
|
44
|
+
続いて2.
|
45
|
+
|
46
|
+
```VB
|
47
|
+
public class compiler
|
48
|
+
shared function Main as integer
|
49
|
+
' Here your code !
|
50
|
+
Dim ret as Hoge = Nothing
|
51
|
+
B(ret) 'ここをコメントアウトしてみたりしなかったりすると
|
52
|
+
|
53
|
+
if ret IsNot Nothing
|
54
|
+
Console.WriteLine ("not null") 'ここが表示されるか?
|
55
|
+
End if
|
56
|
+
return 0
|
57
|
+
End function
|
58
|
+
|
59
|
+
Shared sub B(ByRef h)
|
60
|
+
h = new Hoge()
|
61
|
+
End sub
|
62
|
+
|
63
|
+
end class
|
64
|
+
|
65
|
+
class Hoge
|
66
|
+
end class
|
67
|
+
```
|
68
|
+
|
69
|
+
呼び出し元に影響します。
|
1
結論の追記
answer
CHANGED
@@ -37,4 +37,6 @@
|
|
37
37
|
end if
|
38
38
|
end function
|
39
39
|
end class
|
40
|
-
```
|
40
|
+
```
|
41
|
+
|
42
|
+
まあ当然呼び出し元に影響します。
|