Laden...

Wie kann ich den Namen des Enums zur Laufzeit raus zubekommen?

Erstellt von andi_bln vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.994 Views
A
andi_bln Themenstarter:in
25 Beiträge seit 2014
vor 6 Jahren
Wie kann ich den Namen des Enums zur Laufzeit raus zubekommen?

Hallo,

gibt es eine Möglichkeit den Namen des Enums zur Laufzeit raus zubekommen ( hier --> BeispielName)
Hintergrund, aus dem Enum generiere ich ein Layout für einen Table, so könnte ich mir den Namen des Tables als separate Konstante sparen.. Geht sowas ?

Vielen Dank für einen Tip

Andreas


      public enum BeispielName
      {
          [Description("AUTOINCREMENT*")]  
          LfdNr = 0,
          [Description("TEXT(50)")]
          Bsp1,
          [Description("TEXT(50)")]
          Bsp2l,
          [Description("TEXT(255)")]
          Bsp3,
          [Description("TEXT(255)")]
          Bsp4
      }

noch ?????

T
461 Beiträge seit 2013
vor 6 Jahren

CODE TAGS nicht vergessen...

Hier ein einfaches Beispiel:



nameof(BeispielName)


Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

4.942 Beiträge seit 2008
vor 6 Jahren

Anhand welcher Information(en) möchtest du den Namen bestimmen können?
Mittels Reflection kann man sich eine Liste aller Subtypen einer Klasse geben lassen:


var types = this.GetType().DeclaredNestedTypes;

Schau dir einfach mal in der MSDN TypeInfo an.

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo ThomasE.,

für das konkrete Beispiel "( hier --> BeispielName)" hast du recht, aber nicht für "zur Laufzeit", denn nameof ist eine Compiler-Aktion, also zur Entwurfszeit.

Hallo andi_bln,

den Namen des Enums zur Laufzeit raus zubekommen ( hier --> BeispielName)

Woher bekommst du das Enum, so dass es zur Laufzeit nicht bekannt ist?
Wenn du es einer Methode übergibst, so ist es eh bekannt und dann kannst du wie von ThomasE. vorgeschlagen nameof verwenden.
Sonst schau dir auch die Enum-Methoden in der :rtfm: an ob dort etwas für dich dabei ist.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
2.122 Beiträge seit 2010
vor 6 Jahren

so könnte ich mir den Namen des Tables als separate Konstante sparen.. Geht sowas ?

Denke daran dass du dein enum vielleicht irgendwann umbenennen möchtest, weil es nicht mehr ganz das selbe ist wie bisher. Dann brauchst du eine Umsetzung zwischen enum und Tabellenname, sonst wird dein Programm nicht mehr benutzbar.