mengoptimumkan penukaran rentetan-to-enum dalam c#
C# menawarkan beberapa cara untuk menukar rentetan ke dalam nilai enum, tetapi pendekatan langsung tidak selalu sesuai. Mari kita meneroka alternatif yang cekap. StatusEnum MyStatus = StatusEnum.Parse("Active");
memanfaatkan Enum.TryParse
menyediakan penyelesaian yang mantap: Enum.TryParse
<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
<code class="language-csharp">var myStatus = Enum.TryParse("Active", out var result) ? result : default;</code>
kaedah lanjutan tersuai (untuk rangka kerja yang lebih lama atau keperluan khusus)
Jika tidak tersedia, kaedah lanjutan tersuai menawarkan fleksibiliti: Enum.TryParse
<code class="language-csharp">public static T ParseEnum<T>(string value) { return (T)Enum.Parse(typeof(T), value, true); } var myStatus = ParseEnum<StatusEnum>("Active");</code>
<code class="language-csharp">public static T ToEnum<T>(this string value, T defaultValue) { if (string.IsNullOrEmpty(value)) { return defaultValue; } T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; } var myStatus = "Active".ToEnum(StatusEnum.None);</code>
Nota penting pada sambungan: Walaupun kaedah lanjutan berguna, terlalu banyak boleh menyebabkan kekacauan kod. Pertimbangkan konteks dan konflik yang berpotensi sebelum menambah sambungan kepada jenis terbina dalam seperti . Menggunakan kelas penolong statik mungkin pendekatan yang lebih bersih dalam beberapa kes. string
Atas ialah kandungan terperinci Bagaimanakah saya dapat menukar rentetan ke penghitungan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!