2011-01-19 23 views
0

斐伊川、は、列挙型

それは私がのような文字列を持っているなどのために列挙

にスペースやspecialcharactersの文字列を追加することが可能である」にスペースまたはspecialcharactersの文字列を追加することも可能です保険KRのユーザー(名前)」 iは

public enum MemberGroup 
{ 
    Insurance KR Users (Name) 
} 

のような列挙にこの文字列を含めることを試みたが、それはエラーをキャッチ。これらの文字列を列挙型に含めるソリューションを教えてください。

答えて

9

列挙型メンバ自体は、valid identifierである必要があります。したがって、空白や特殊文字は使用できません。

しかし、あなたはそれぞれの列挙値のより完全な説明を提供するDescriptionAttributeを使用することができます。

public enum MemberGroup 
{ 
    [Description("Insurance KR Users (Name)")] 
    InsuranceKrUsers_Name 
} 

説明を取得するには、このようなものを使用します。列挙型自体

public static string GetDescription(Enum value) 
{ 
    FieldInfo fi = value.GetType().GetField(value.ToString()); 
    DescriptionAttribute[] attributes = 
    (DescriptionAttribute[])fi.GetCustomAttributes(
    typeof(DescriptionAttribute), false); 
    return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); 
} 
+0

私の場合Discription属性をコンパイラが見つけることができませんでした。それはネットで利用可能です3.5。 Plsは他の人が覚えていれば助けてくれます。 –

+0

これがあります。System.ComponentModel名前空間を必ず使用してください。 –

0

をすることができます」ピーターが言うように、スペースにはスペースが含まれていますが、それには特定の文字セットしか含めることができません。

ただし、列挙型の説明属性を使用して追加の情報を格納することもできますが、これはリフレクションを使用して取得する必要があります。どのようにそれを行うには、インターネット上でかなりの例がありますが、例として、hereは1です。