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

回答編集履歴

2

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

2019/06/29 20:08

投稿

len_souko
len_souko

スコア1367

answer CHANGED
@@ -18,8 +18,8 @@
18
18
  ```VB.NET
19
19
  Class 数値を記載するクラス
20
20
  Enum 数値タイプ
21
- 数値A = 1
21
+ 数値A
22
- 数値B = 2
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
- (なお、コメントを書いた後にVBだとどうおやるんだっけ?と調べてるのでコメントはC#な表現になっています、VB.NETは10年ぶりくらいなので)
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 = 1
62
+ 数値A
59
- 数値B = 2
63
+ 数値B
60
64
  End Enum
61
65
 
62
66
  Private Shared ReadOnly Property 数値パターン As New Dictionary(Of 数値タイプ, 数値を記載するクラス) From

1

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

2019/06/29 20:08

投稿

len_souko
len_souko

スコア1367

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
+ ```