Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara menghuraikan rentetan ke dalam enum di C#?

Bagaimana cara menghuraikan rentetan ke dalam enum di C#?

Susan Sarandon
Lepaskan: 2025-02-02 00:32:10
asal
790 orang telah melayarinya

How to Parse a String into an Enum in C#?

Dalam C#, rentetan dihuraikan sebagai disebutkan

Apabila memproses borang dan penghitungan HTML dalam C#, nilai rentetan mungkin perlu ditukar kepada nilai penghitungan yang sepadan. Berikut adalah beberapa kaedah untuk melaksanakan tugas ini:

kaedah parsing umum (.NET Core dan .NET Framework 4.0)

dalam .NET Core dan .NET Framework 4.0 dan versi yang lebih tinggi, anda boleh menggunakan kaedah parsing umum:

bool statusSuccess = Enum.TryParse("Active", out StatusEnum myStatus);
Salin selepas log masuk
kaedah analisis mudah

Jika anda tidak dapat mengakses versi terkini .NET, anda boleh membuat rutin analisis mudah:

public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

StatusEnum myStatus = EnumUtil.ParseEnum<StatusEnum>("Active");
// 或
StatusEnum myStatus = "Active".ToEnum<StatusEnum>();
Salin selepas log masuk
kaedah dengan nilai lalai

Jika rentetan tidak boleh menjadi nilai penghitungan yang berkesan, anda boleh memberikan nilai lalai dalam kaedah parsing:

public static T ToEnum<T>(this string value, T defaultValue)
{
    if (value == null || value == "")
        return defaultValue;

    T result;
    return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}

StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);
Salin selepas log masuk
Ingat bahawa apabila mengubahsuai kelas teras seperti kelas rentetan, gunakan kaedah pengembangan dengan teliti kerana ia akan mempengaruhi semua contoh kelas ini, tanpa mengira konteksnya.

Atas ialah kandungan terperinci Bagaimana cara menghuraikan rentetan ke dalam enum di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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