ENUM - Zugriff auf die Konstanten

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    ENUM - Zugriff auf die Konstanten

    Moin!

    ich habe eine einfache ENUM-Definition:

    VB.NET-Quellcode

    1. Private Enum VerzNum As Integer
    2. Verzeichnis_1 = 1
    3. Verzeichnis_2 = 2
    4. End Enum


    Nun möchte ich auf den Wert der Konstanten zugreifen. Dachte es ginge in dieser Form:

    VB.NET-Quellcode

    1. Private Sub Anazlyze(ByVal lfdNr As VerzNum, ByRef Count_Folder As Integer, ByRef Count_File As Integer)
    2. ...
    3. Me.Controls("tb_folder_" & lfdNr.ToString).Text


    Aber das war falsch gedacht!

    Bisher habe ich immer Beispiele nur gefunden, wo der Wert von den ENUM-Bezeichnungen einer Variablen zugewiesen wurde etc.! Aber auch ein

    VB.NET-Quellcode

    1. lfdNr.value.tostring

    gibt es nicht.

    Kann mir einer weiterhelfen?

    Gruß Jan
    @jan99 Entweder Du machst lfdNr.ToString(), da kommt "Verzeichnis_1" oder "Verzeichnis_2" raus, oder Du musst die Enum-Variable in ein Integer konvertieren: CInt(lfdNr).ToString(), da käme dann "1" oder "2" raus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @jan99
    Wenn du z.B. einen String zur Verfügung hast und möchtest nun wissen, ob der Textteil mit einer der Enumerationskonstanten übereinstimmt - dann kannst du so vorgehen:

    VB.NET-Quellcode

    1. Private Enum EnumHelloWorld
    2. Hallo = 1
    3. Welt = 2
    4. End Enum
    5. '
    6. Dim value = "Hallo"
    7. 'hat die Enumeration eine Konstante mit dem angegebenen Inhalt von 'value'?
    8. If Not [Enum].IsDefined(GetType(EnumHelloWorld), value) Then Stop
    9. 'wenn Ja - dann auswerten...
    10. Dim txt = [Enum].Parse(GetType(EnumHelloWorld), value).ToString
    11. Dim index = CInt([Enum].Parse(GetType(EnumHelloWorld), value))
    12. Stop