Feedback

VB - Enum Handling

Veröffentlicht von am 31.10.2006
(1 Bewertungen)
zwei kleine Funktionen, um
1. die EnumMember Namen anhand eines Enum Wertes zu ermitteln und
2. den Enum Wert anhand eines EnumMember Namens zu ermitteln
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

    <FlagsAttribute()> _
    Public Enum EAccessType As Integer
        change = 1
        insert = 2
        delete = 4
        move = 8
        copy = 16
    End Enum

    ' ermittelt die EmumMember Namen
    ' Bsp: ist Value 7 (change AND insert AND delete) ist das Ergebnis {"change", "insert", "delete"}
    Public Function GetEnumItemNames( _
            ByVal Value As EAccessType) As String()
        Dim a As String
        Dim b As String
        Dim c As String()

        a = Value.ToString
        a = a.Replace(" ", "")
        c = Split(a, ",")

        a = ""
        For Each b In c
            If a <> "" Then a &= ","
            a &= GetEnumValue(b)
        Next

        c = Split(a, ",")

        Return c
    End Function

    ' Ermittel den EnumMember Wert anhand dessen Namen 
    Private Function GetEnumValue(ByVal strName As String) As EAccessType
        Enum.Parse(EAccessType.GetType(), strName) ' @_ntr_: danke ;-)
    End Function
Abgelegt unter Enum.

2 Kommentare zum Snippet

_ntr_ schrieb am 13.12.2006:
Hallo Jürgen Gutsch,
mein Verbesserungsvorschlag: anstatt ein Select-Case Konstrukt folgendes verwenden:
Enum.Parse(EAccessType.GetType(), "delete")


Das ist weitaus generischer, und ist auch für Erweiterungen im enum gefeiter (außerdem weniger Tipparbeit ;-)

Gruß
_ntr_
Carschrotter schrieb am 08.07.2011:

Private Function GetEnumValue1(ByVal strName As String) As EAccessType
Dim EAccessType As New EAccessType 'erstellen eines Dumys
Return System.Enum.Parse(EAccessType.GetType(), strName) ' bezieung auf din richtigen namespace
End Function

Private Function GetEnumValue2(ByVal strName As String, ByVal myenum As System.Enum) As System.Enum
Return System.Enum.Parse(myenum.GetType(), strName) ' bezieung auf din richtigen namespace
End Function
 

Logge dich ein, um hier zu kommentieren!