C# 列挙型ではフレンドリ名を使用できますか?
お気づきのとおり、C# の列挙メンバーは、区切り文字としてアンダースコアを使用したリテラル名のみを持つことができます。ただし、列挙に「わかりやすい名前」を割り当てる方法があります。
解決策: 説明属性
DescriptionAttribute
属性を使用すると、各列挙メンバーにわかりやすい説明を提供できます。以下は、説明の取得を簡素化する拡張メソッドです:
<code class="language-csharp">public static string GetDescription(this Enum value) { Type type = value.GetType(); string name = Enum.GetName(type, value); FieldInfo field = type.GetField(name); DescriptionAttribute attr = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; return attr != null ? attr.Description : null; }</code>
使用法:
各列挙型メンバーに DescriptionAttribute
を適用し、目的のフレンドリ名を指定します:
<code class="language-csharp">public enum MyEnum { [Description("此名称有效")] ThisNameWorks, [Description("此名称无效")] ThisNameDoesntWork, [Description("这个也不行")] NeitherDoesThis }</code>
フレンドリ名を取得するには:
<code class="language-csharp">MyEnum x = MyEnum.ThisNameWorks; string description = x.GetDescription();</code>
以上がC# で Enum メンバーにフレンドリ名を割り当てることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。