Rumah >pembangunan bahagian belakang >C++ >Bolehkah saya Berikan Nama Mesra kepada Ahli Enum dalam 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!