Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara terbaik mewakili nilai rentetan dalam enum?

Bagaimana cara terbaik mewakili nilai rentetan dalam enum?

DDD
Lepaskan: 2025-01-29 08:10:09
asal
846 orang telah melayarinya

How to Best Represent String Values in Enums?

rentetan enumerated menunjukkan

Penghitungan adalah alat yang berkuasa untuk satu set pemalar penamaan. Walau bagaimanapun, apabila anda perlu mengakses perwakilan rentetan nilai penghitungan, tingkah laku lalai mungkin terhad.

Penyelesaian tersuai

Penyelesaian tersuai yang disediakan oleh pengguna melibatkan penciptaan atribut tersuai bernama "StringValue" dan menambahkannya kepada penghitungan. Atribut ini menyimpan rentetan nilai yang disebutkan menunjukkan bahawa kaedah GetStringValue boleh digunakan untuk mendapatkan semula. Walaupun penyelesaian ini sah, ia akan meningkatkan kerumitan tambahan dan memerlukan kod tambahan untuk dikekalkan.

Taipkan mod penghitungan selamat

Kaedah yang lebih fleksibel dan selamat adalah menggunakan mod penghitungan selamat jenis. Dalam mod ini, penghitungan ditakrifkan sebagai kelas pengedap, di mana medan statik menunjukkan nilai penghitungan. Contohnya: Menggunakan kaedah ini, anda boleh menggunakan hanya untuk memohon kaedah ToString untuk mengakses rentetan penghitungan. Di samping itu, ia boleh menentukan penukaran jenis yang jelas dan tersirat supaya ia dapat dengan mudah ditukar antara rentetan dan nilai penghitungan.

Kesimpulan

<code class="language-c#">public sealed class AuthenticationMethod
{
    private readonly string name;
    private readonly int value;

    public static readonly AuthenticationMethod FORMS = new AuthenticationMethod(1, "FORMS");
    public static readonly AuthenticationMethod WINDOWSAUTHENTICATION = new AuthenticationMethod(2, "WINDOWS");
    public static readonly AuthenticationMethod SINGLESIGNON = new AuthenticationMethod(3, "SSN");

    private AuthenticationMethod(int value, string name)
    {
        this.name = name;
        this.value = value;
    }

    public override string ToString()
    {
        return name;
    }
}</code>
Salin selepas log masuk

Taipkan mod penghitungan selamat menyediakan cara yang lebih fleksibel dan selamat untuk mewakili penghitungan dengan nilai rentetan. Ia menghapuskan keperluan untuk atribut tersuai dan menyediakan cara yang konsisten dan intuitif untuk mengakses perwakilan rentetan penghitungan.

Atas ialah kandungan terperinci Bagaimana cara terbaik mewakili nilai rentetan dalam enum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan