回答編集履歴

2

enumへ数値の設定する記述を削除

2019/06/29 20:08

投稿

len_souko
len_souko

スコア1348

test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
  Enum 数値タイプ
40
40
 
41
- 数値A = 1
41
+ 数値A
42
42
 
43
- 数値B = 2
43
+ 数値B
44
44
 
45
45
  End Enum
46
46
 
@@ -98,9 +98,17 @@
98
98
 
99
99
 
100
100
 
101
+ 追記
102
+
103
+ そもそも、enumの値を数値として使用するってのが本来ではないと思うんですよ
104
+
105
+ というわけで解凍に書いたenumに値を設定している個所を修正しています
106
+
101
107
  コメントで書いたDictionaryを使用する場合は以下のような感じ
102
108
 
103
- (なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので)
109
+ なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので
110
+
111
+ でもって本回答のソースはすべてVS2019で実際にVBプロジェクトを作成して実行確認しています
104
112
 
105
113
  ```VB.NET
106
114
 
@@ -112,9 +120,9 @@
112
120
 
113
121
  Enum 数値タイプ
114
122
 
115
- 数値A = 1
123
+ 数値A
116
124
 
117
- 数値B = 2
125
+ 数値B
118
126
 
119
127
  End Enum
120
128
 

1

Dictionaryを使用する場合のコードを追記

2019/06/29 20:08

投稿

len_souko
len_souko

スコア1348

test CHANGED
@@ -95,3 +95,79 @@
95
95
 
96
96
 
97
97
  質問者さんの提示したソースだとenumの使い方が間違ってますよねってところで意味不明な感じになってるんじゃないかと思います
98
+
99
+
100
+
101
+ コメントで書いたDictionaryを使用する場合は以下のような感じ
102
+
103
+ (なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので)
104
+
105
+ ```VB.NET
106
+
107
+ Class 処理クラス
108
+
109
+ ReadOnly Property 数値 As 数値を記載するクラス
110
+
111
+
112
+
113
+ Enum 数値タイプ
114
+
115
+ 数値A = 1
116
+
117
+ 数値B = 2
118
+
119
+ End Enum
120
+
121
+
122
+
123
+ Private Shared ReadOnly Property 数値パターン As New Dictionary(Of 数値タイプ, 数値を記載するクラス) From
124
+
125
+ {{数値タイプ.数値A, New 数値を記載するクラス(1, 2)},
126
+
127
+ {数値タイプ.数値B, New 数値を記載するクラス(10, 11)}}
128
+
129
+
130
+
131
+ Sub New(パターン As String)
132
+
133
+ Me.パターン = パターン
134
+
135
+ If パターン = "パターンA" Then
136
+
137
+ 数値 = 数値パターン(数値タイプ.数値A)
138
+
139
+ Else
140
+
141
+ 数値 = 数値パターン(数値タイプ.数値B)
142
+
143
+ End If
144
+
145
+ End Sub
146
+
147
+
148
+
149
+ End Class
150
+
151
+
152
+
153
+ Class 数値を記載するクラス
154
+
155
+ ReadOnly Property 数値1 As Integer
156
+
157
+ ReadOnly Property 数値20 As Integer
158
+
159
+
160
+
161
+ Sub New(数値1 As Integer, 数値20 As Integer)
162
+
163
+ Me.数値1 = 数値1
164
+
165
+ Me.数値20 = 数値20
166
+
167
+ End Sub
168
+
169
+ End Class
170
+
171
+
172
+
173
+ ```