Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mendapatkan perwakilan rentetan enum di C# lebih elegan?
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>
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>
Keselamatan Jenis:
AuthenticationMethod
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!