Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Atribut Perihalan Enum daripada Nilai Integernya dalam C#?

Bagaimana untuk Mendapatkan Atribut Perihalan Enum daripada Nilai Integernya dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-24 20:31:10588semak imbas

How to Retrieve an Enum's Description Attribute from its Integer Value in C#?

Dapatkan keterangan penghitungan di C#mengikut nilai

Dalam C#, lif boleh mempunyai atribut penerangan yang berkaitan, yang menyediakan teks deskriptif untuk setiap nilai penghitungan. Berdasarkan penerangan carian kerucut, anda boleh menggunakan langkah -langkah berikut:

    Buat penghitungan dengan atribut keterangan:
<code class="language-csharp">public enum MyEnum
{
    Name1 = 1,
    [Description("另一个描述")]
    HereIsAnother = 2,
    [Description("最后一个描述")]
    LastOne = 3
}</code>
    Tentukan fungsi untuk mendapatkan deskripsi:
<code class="language-csharp">public static string GetEnumDescription(Enum value)
{
    FieldInfo fi = value.GetType().GetField(value.ToString());

    DescriptionAttribute[] attributes = fi.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

    if (attributes != null && attributes.Length > 0)
    {
        return attributes[0].Description;
    }

    return value.ToString();
}</code>
    menggunakan fungsi ini untuk mendapatkan penerangan nilai penghitungan:
<code class="language-csharp">var myEnumDescriptions = from MyEnum n in Enum.GetValues(typeof(MyEnum))
                         select new { ID = (int)n, Name = GetEnumDescription(n) };</code>
Sekarang, anda perlu mengambil deskripsi nilai mengikut nilai integernya, anda boleh:

<code class="language-csharp">int value = 1;
string description = GetEnumDescription((MyEnum)value);</code>
Ini akan menukar nilai integer ke dalam jenis penghitungan dan lulus ke fungsi getEnumdescript, yang akan mengembalikan penerangan yang sepadan.

[

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Atribut Perihalan Enum daripada Nilai Integernya 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