From Evernote: |
[.NET]列挙型(Enum)のオリジナル使い方 |
フツウに宣言して自分変数として使うけど、
その他色々使うメモ。
'宣言部==============================
Private Enum ABCD As Integer
A = 1
B = 2
C = 3
D = 4
End Enum
'①通常の使い方
If tmp = ABCD.A.GetHashCode
MessageBox.Show("あたり")
End If
'②定義されている数や中身を知りたい場合
Dim cnt As Integer = 0
For Each EnumNumber As ABCD In System.Enum.GetValues(GetType (ABCD))
cnt += 1
MessageBox.Show(EnumNumber)
Next
'ここからは自分流==============
'これはEnum宣言と同じく作っておく
Private Function GetName( ByVal Type As Type, ByVal Code As Integer ) As String
Dim tmp As String = Nothing
If Type Is GetType(ABCD) Then
Select Case Code
Case ABCD.A.GetHashCode
tmp = "えー"
Case ABCD.B.GetHashCode
tmp = "びー"
Case ABCD.C.GetHashCode
tmp = "しー"
Case ABCD.D.GetHashCode
tmp = "でー"
End Select
End If
Return tmp
End Function
# End Region
'たとえば列挙したデータでデータテーブルを作りたい場合==============
Dim dt As New DataTable
dt.Columns.Add( "id" , GetType( Integer))
dt.Columns.Add( "name" , GetType( String))
For Each EnumNumber As ABCDIn System.Enum.GetValues(GetType (ABCD))
Dim dr As DataRow = dt.NewRow
dr.Item( "id" ) = EnumNumber
dr.Item( "name" ) = GetName( GetType(ABCD), EnumNumber)
dt.Rows.Add(dr)
Next
0 件のコメント:
コメントを投稿