Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memberi Nama Mesra kepada C# Enums?

Bagaimanakah Saya Boleh Memberi Nama Mesra kepada C# Enums?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-19 11:26:10496semak imbas

How Can I Give Friendly Names to C# Enums?

Tetapkan nama yang lebih mesra untuk C# enum

Dalam pengaturcaraan C#, penghitungan digunakan untuk menentukan set nilai tetap Pembolehubah penghitungan hanya boleh mengambil nilai yang ditentukan dalam penghitungan. Walau bagaimanapun, secara lalai, ahli penghitungan hanyalah nilai berangka, yang tidak cukup intuitif dalam beberapa kes. Jadi persoalannya ialah bagaimana untuk memberikan penghitungan nama yang lebih mesra.

Penyelesaian menggunakan atribut Penerangan

Untuk memberi ahli penghitungan nama yang lebih mudah difahami, anda boleh menggunakan atribut Penerangan. Ini membolehkan rentetan teks deskriptif ditentukan untuk setiap ahli penghitungan. Penerangan ini kemudiannya boleh diperoleh menggunakan kaedah sambungan:

<code class="language-csharp">public static string GetDescription(this Enum value)
{
    Type type = value.GetType();
    string name = Enum.GetName(type, value);
    if (name != null)
    {
        FieldInfo field = type.GetField(name);
        if (field != null)
        {
            DescriptionAttribute attr = 
                   Attribute.GetCustomAttribute(field, 
                     typeof(DescriptionAttribute)) as DescriptionAttribute;
            if (attr != null)
            {
                return attr.Description;
            }
        }
    }
    return null; // 或抛出异常,视情况而定
}</code>

Cara menggunakannya:

<code class="language-csharp">public enum MyEnum
{
    [Description("Foo 的描述")]
    Foo,
    [Description("Bar 的描述")]
    Bar
}

MyEnum x = MyEnum.Foo;
string description = x.GetDescription();</code>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memberi Nama Mesra kepada C# Enums?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn