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 ?????
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... 😄
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.
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!"
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.