Saya memiliki enum:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Bagaimana saya, diberi string HKEY_LOCAL_MACHINE
, mendapatkan nilai 0x80000002
berdasarkan enum?
Menggunakan Enum.TryParse, Anda tidak memerlukan penanganan Exception:
sumber
sumber
Dengan beberapa penanganan kesalahan ...
sumber
Potongan kode ini menggambarkan perolehan nilai enum dari sebuah string. Untuk mengonversi dari string, Anda perlu menggunakan
Enum.Parse()
metode statis , yang membutuhkan 3 parameter. Yang pertama adalah jenis enum yang ingin Anda pertimbangkan. Sintaksnya adalah kata kunci yangtypeof()
diikuti dengan nama kelas enum dalam tanda kurung. Parameter kedua adalah string yang akan dikonversi, dan parameter ketiga adalahbool
penunjuk apakah Anda harus mengabaikan case saat melakukan konversi.Terakhir, perhatikan bahwa
Enum.Parse()
sebenarnya mengembalikan referensi objek, itu berarti Anda perlu mengonversinya secara eksplisit ke jenis enum yang diperlukan (string
,int
dll).Terima kasih.
sumber
Solusi alternatif dapat berupa:
Atau hanya:
sumber
"HKEY_LOCAL_MACHINE"
menjadi nilai, seperti yang diminta OP, Anda mengonversi simbolHKEY_LOCAL_MACHINE
menjadi nilai. Binatang buas yang sangat berbeda.