Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mendapatkan perwakilan rentetan enum di C# lebih elegan?

Bagaimanakah saya boleh mendapatkan perwakilan rentetan enum di C# lebih elegan?

Susan Sarandon
Lepaskan: 2025-01-29 07:57:09
asal
230 orang telah melayarinya

How Can I Get the String Representation of an Enum in C# More Elegantly?

Dapatkan rentetan C#yang disenaraikan dengan elegan

Pertimbangkan penghitungan berikut:

Untuk mendapatkan nilai rentetan (seperti "bentuk" bukannya ID 1), penyelesaian diperlukan. Walaupun kaedah dan kaedah kamus berasaskan atribut yang sedia ada menyediakan penyelesaian transformasi, terdapat penyelesaian yang lebih elegan.
<code class="language-csharp">public enum AuthenticationMethod
{
    FORMS = 1,
    WINDOWSAUTHENTICATION = 2,
    SINGLESIGNON = 3
}</code>
Salin selepas log masuk

Taipkan mod penghitungan selamat

Taip mod penghitungan selamat memperkenalkan kelas pengedap, dan setiap ahli penghitungan dinyatakan sebagai contoh yang berasingan:

Model ini mempunyai kelebihan berikut:

<code class="language-csharp">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

Keselamatan Jenis:

    Kelas Pastikan hanya nilai yang berkesan digunakan.
  • jelas dan ringkas: String menunjukkan secara langsung kepada setiap ahli. AuthenticationMethod
  • Skalabiliti: boleh menambah nilai tambah tanpa memusnahkan kod sedia ada.
  • Penukaran Jenis Berbeza
  • Jika diperlukan, anda boleh menambah penukaran jenis eksplisit ke kelas , biarkan rentetan untuk menukar rentetan ke penghitungan (terdapat masalah dalam bahagian contoh kod ini, anda perlu membetulkannya):

Ini membolehkan penukaran mudah, contohnya:

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan perwakilan rentetan enum di C# lebih elegan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan