Als Scott und Renato beide gesagt haben, der richtige Weg, dies zu erreichen, ist ein Attribut zu verwenden, um die Aufzählung mit den Informationen dekorieren Sie möchte angezeigt werden.
public enum OsVersioniOS : int
{
[Display(Name="8.0")]
Version_8_0 = 1 << 0,
[Display(Name="8.1")]
Version_8_1 = 1 << 1,
[Display(Name="8.2")]
Version_8_2 = 1 << 2,
//etc.
}
Sobald Sie diese Attribute definiert haben, können Sie Ihre Einstellungen aus den Aufzählungen per Reflektion abrufen. Zum Beispiel:
{
OsVersioniOS enumMember = GetEnumThatYouNeedNameOf();
var type = typeof(OsVersioniOS);
var memberInfo = type.GetMember(enumMember.ToString());
var attribute = (DisplayAttribute)memberInfo[0].GetCustomAttributes(typeof(DisplayAttribute),false)
var value = attribute.Name;
return value;
}
würde ich vorschlagen, in einem Verlängerungsverfahren oder statische Hilfsmethode Umwickeln Sie, dass es eine Menge gehen werden. Wenn Sie mehr Werte benötigen, können Sie Ihr eigenes Attribut erstellen, anstatt Anzeige oder Beschreibung zu verwenden.
Genauer gesagt müssen die 'enum'-Member Namen haben, die ___identifiers___ gemäß dem Unterabschnitt _Identifiers_ (Unterabschnitt 2.4.2 in der Version, die ich habe) der C# -Sprachspezifikation. Insbesondere muss das Start-Zeichen ein Buchstabe oder ein Unterstrich sein. –
@JeppeStigNielsen danke, aktualisierte Antwort und lieferte einen Link zu den C# -Spezifikationen. –