Walaupun enum C# secara semula jadi memetakan kepada nilai integer, mengaitkannya dengan rentetan deskriptif secara berkesan meningkatkan kebolehbacaan dan kebolehselenggaraan. Artikel ini meneroka teknik di luar definisi enum asas untuk mencapai matlamat ini.
Kaedah teguh melibatkan penggunaan sifat statik dalam kelas. Pendekatan ini memberikan pengalaman pengguna yang serupa dengan enum tetapi membenarkan perwakilan rentetan langsung. Berikut ialah contoh menggunakan kelas LogCategory
:
<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>
Kelas ini mencerminkan fungsi enum. Sifat Value
memegang perwakilan rentetan, boleh diakses melalui sifat statik seperti LogCategory.Info
.
Contoh penggunaan:
<code class="language-csharp">public static void WriteLog(string message, LogCategory category) { var logEntry = new LogEntry { Message = message }; Logger.Write(logEntry, category.Value); } // Example call WriteLog("This is a log message.", LogCategory.Warning);</code>
Pendekatan ini mengekalkan kejelasan dan kemudahan penggunaan enum sambil menyediakan pemetaan rentetan yang diperlukan untuk kejelasan kod yang dipertingkatkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memetakan Penghitungan C# kepada Rentetan dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!