回答編集履歴
2
enumへ数値の設定する記述を削除
answer
CHANGED
@@ -18,8 +18,8 @@
|
|
18
18
|
```VB.NET
|
19
19
|
Class 数値を記載するクラス
|
20
20
|
Enum 数値タイプ
|
21
|
-
数値A
|
21
|
+
数値A
|
22
|
-
数値B
|
22
|
+
数値B
|
23
23
|
End Enum
|
24
24
|
|
25
25
|
ReadOnly Property 数値1 As Integer
|
@@ -48,15 +48,19 @@
|
|
48
48
|
|
49
49
|
質問者さんの提示したソースだとenumの使い方が間違ってますよねってところで意味不明な感じになってるんじゃないかと思います
|
50
50
|
|
51
|
+
追記
|
52
|
+
そもそも、enumの値を数値として使用するってのが本来ではないと思うんですよ
|
53
|
+
というわけで解凍に書いたenumに値を設定している個所を修正しています
|
51
54
|
コメントで書いたDictionaryを使用する場合は以下のような感じ
|
52
|
-
|
55
|
+
なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので
|
56
|
+
でもって本回答のソースはすべてVS2019で実際にVBプロジェクトを作成して実行確認しています
|
53
57
|
```VB.NET
|
54
58
|
Class 処理クラス
|
55
59
|
ReadOnly Property 数値 As 数値を記載するクラス
|
56
60
|
|
57
61
|
Enum 数値タイプ
|
58
|
-
数値A
|
62
|
+
数値A
|
59
|
-
数値B
|
63
|
+
数値B
|
60
64
|
End Enum
|
61
65
|
|
62
66
|
Private Shared ReadOnly Property 数値パターン As New Dictionary(Of 数値タイプ, 数値を記載するクラス) From
|
1
Dictionaryを使用する場合のコードを追記
answer
CHANGED
@@ -46,4 +46,42 @@
|
|
46
46
|
コンストラクタへパターンを渡すようにします
|
47
47
|
処理クラスの方では自身の引数からどのパターンなのかを判断するだけにしておきます
|
48
48
|
|
49
|
-
質問者さんの提示したソースだとenumの使い方が間違ってますよねってところで意味不明な感じになってるんじゃないかと思います
|
49
|
+
質問者さんの提示したソースだとenumの使い方が間違ってますよねってところで意味不明な感じになってるんじゃないかと思います
|
50
|
+
|
51
|
+
コメントで書いたDictionaryを使用する場合は以下のような感じ
|
52
|
+
(なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので)
|
53
|
+
```VB.NET
|
54
|
+
Class 処理クラス
|
55
|
+
ReadOnly Property 数値 As 数値を記載するクラス
|
56
|
+
|
57
|
+
Enum 数値タイプ
|
58
|
+
数値A = 1
|
59
|
+
数値B = 2
|
60
|
+
End Enum
|
61
|
+
|
62
|
+
Private Shared ReadOnly Property 数値パターン As New Dictionary(Of 数値タイプ, 数値を記載するクラス) From
|
63
|
+
{{数値タイプ.数値A, New 数値を記載するクラス(1, 2)},
|
64
|
+
{数値タイプ.数値B, New 数値を記載するクラス(10, 11)}}
|
65
|
+
|
66
|
+
Sub New(パターン As String)
|
67
|
+
Me.パターン = パターン
|
68
|
+
If パターン = "パターンA" Then
|
69
|
+
数値 = 数値パターン(数値タイプ.数値A)
|
70
|
+
Else
|
71
|
+
数値 = 数値パターン(数値タイプ.数値B)
|
72
|
+
End If
|
73
|
+
End Sub
|
74
|
+
|
75
|
+
End Class
|
76
|
+
|
77
|
+
Class 数値を記載するクラス
|
78
|
+
ReadOnly Property 数値1 As Integer
|
79
|
+
ReadOnly Property 数値20 As Integer
|
80
|
+
|
81
|
+
Sub New(数値1 As Integer, 数値20 As Integer)
|
82
|
+
Me.数値1 = 数値1
|
83
|
+
Me.数値20 = 数値20
|
84
|
+
End Sub
|
85
|
+
End Class
|
86
|
+
|
87
|
+
```
|