misc.log

日常茶飯事とお仕事と

列挙体の内容列挙

列挙体を引数に持つ関数で、列挙体のメンバーとして適切なものを指定されたかどうかの判定ロジックを書いていて気づいたことをメモメモ。

Friend Shared Function IsProperEnum(ByVal TargetMember As Object, ByVal TargetType As System.Type) As Boolean

    Dim Fields As System.Array
        Try
            Fields = [Enum].GetValues(TargetType)
            If System.Array.IndexOf(Fields, TargetMember) <> -1 Then

というようなことをやって、Fieldsに入る値は、列挙体のメンバーに割り当てられた整数値ではなく、列挙体のメンバーオブジェクトになる。