Rumah >pembangunan bahagian belakang >C++ >Bolehkah saya Berikan Nama Mesra kepada Ahli Enum dalam C#?

Bolehkah saya Berikan Nama Mesra kepada Ahli Enum dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-19 11:12:09669semak imbas

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

Bolehkah C# enum menggunakan nama mesra?

Seperti yang anda dapati, ahli penghitungan C# hanya boleh mempunyai nama literal, dengan garis bawah sebagai pembatas. Walau bagaimanapun, terdapat cara untuk menetapkan "nama mesra" kepada penghitungan anda.

Penyelesaian: Atribut penerangan

Anda boleh menggunakan atribut DescriptionAttribute untuk memberikan penerangan yang lebih mesra untuk setiap ahli penghitungan. Berikut ialah kaedah sambungan yang memudahkan mendapatkan semula perihalan:

<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>

Penggunaan:

Mohon DescriptionAttribute kepada setiap ahli enum dan berikan nama mesra yang diingini:

<code class="language-csharp">public enum MyEnum
{
    [Description("此名称有效")]
    ThisNameWorks,
    [Description("此名称无效")]
    ThisNameDoesntWork,
    [Description("这个也不行")]
    NeitherDoesThis
}</code>

Untuk mendapatkan semula nama mesra:

<code class="language-csharp">MyEnum x = MyEnum.ThisNameWorks;
string description = x.GetDescription();</code>

Atas ialah kandungan terperinci Bolehkah saya Berikan Nama Mesra kepada Ahli Enum dalam C#?. 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