Penghadan penghitungan C# ialah jenis pendasarnya mestilah integer, yang boleh menghalang penciptaan penghitungan yang mewakili kod yang sukar difahami. Untuk menyelesaikan masalah ini, beberapa alternatif boleh dipertimbangkan.
Satu teknik ialah menggunakan sifat dalam kelas. Pendekatan ini menyediakan sintaks yang lebih seperti enum sambil mengekalkan fleksibiliti menggunakan rentetan sebagai nilai. Sebagai contoh, kelas Logger boleh mentakrifkan sifat untuk mewakili kategori pengelogan:
<code class="language-csharp">public class LogCategory { private LogCategory(string value) { Value = value; } public string Value { get; private set; } public static LogCategory Trace { get { return new LogCategory("Trace"); } } public static LogCategory Debug { get { return new LogCategory("Debug"); } } public static LogCategory Info { get { return new LogCategory("Info"); } } public static LogCategory Warning { get { return new LogCategory("Warning"); } } public static LogCategory Error { get { return new LogCategory("Error"); } } public override string ToString() { return Value; } }</code>
Pilihan lain ialah menghantar nilai rentetan selamat jenis sebagai parameter kepada kaedah. Pendekatan ini membolehkan penciptaan kaedah ditaip kuat yang menerima nilai rentetan tertentu. Contoh kaedah sedemikian dalam kelas Logger:
<code class="language-csharp">public static void Write(string message, LogCategory logCategory) { var log = new LogEntry { Message = message }; Logger.Write(log, logCategory.Value); }</code>
Cara menggunakan:
<code class="language-csharp">Logger.Write("这几乎就像一个枚举。", LogCategory.Info);</code>
Kedua-dua teknik menyediakan alternatif kepada penghitungan untuk mewakili kod yang sukar difahami, memberikan faedah keselamatan jenis dan kebolehbacaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mewakili Kod Tidak Boleh Difahami dalam C# dengan Struktur Seperti Enum yang Boleh Dibaca?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!