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]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

    <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!