teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

指摘について

2016/06/27 07:36

投稿

ozwk
ozwk

スコア13553

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

コード修正

2016/06/27 07:36

投稿

ozwk
ozwk

スコア13553

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

表現を柔らかく

2016/06/27 02:41

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -70,5 +70,5 @@
70
70
 
71
71
 
72
72
  「参照渡し」と「参照型変数の値渡し」は
73
- それなりにプログラム組める人でも混同しているので
73
+ それなりにプログラム組める人でも混同していることがあるので
74
74
  注意です。

3

参照渡しと参照型の値渡しについて

2016/06/27 02:28

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -66,4 +66,9 @@
66
66
  end class
67
67
  ```
68
68
 
69
- 呼び出し元に影響します。
69
+ 呼び出し元に影響します。
70
+
71
+
72
+ 「参照渡し」と「参照型変数の値渡し」は
73
+ それなりにプログラム組める人でも混同しているので
74
+ 注意です。

2

2について

2016/06/27 02:27

投稿

ozwk
ozwk

スコア13553

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

結論の追記

2016/06/27 02:20

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -37,4 +37,6 @@
37
37
  end if
38
38
  end function
39
39
  end class
40
- ```
40
+ ```
41
+
42
+ まあ当然呼び出し元に影響します。