ホームページ >バックエンド開発 >C++ >C# で Enum メンバーにフレンドリ名を割り当てることはできますか?

C# で Enum メンバーにフレンドリ名を割り当てることはできますか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 11:12:09708ブラウズ

Can I Assign Friendly Names to Enum Members in C#?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。