c# - كيفية الحصول على قيمة التعداد من السلسلة في C #؟




3 Answers

باستخدام Enum.TryParse لا تحتاج إلى معالجة استثناء:

baseKey e;

if ( Enum.TryParse(s, out e) )
{
 ...
}
c# enums

لدي تعداد:

public enum baseKey : uint
{  
    HKEY_CLASSES_ROOT = 0x80000000,
    HKEY_CURRENT_USER = 0x80000001,
    HKEY_LOCAL_MACHINE = 0x80000002,
    HKEY_USERS = 0x80000003,
    HKEY_CURRENT_CONFIG = 0x80000005
}

كيف يمكنني ، بالنظر إلى السلسلة HKEY_LOCAL_MACHINE ، الحصول على قيمة 0x80000002 بناءً على التعداد؟




مع بعض معالجة الأخطاء ...

uint key = 0;
string s = "HKEY_LOCAL_MACHINE";
try
{
   key = (uint)Enum.Parse(typeof(baseKey), s);
}
catch(ArgumentException)
{
   //unknown string or s is null
}



الحل البديل يمكن أن يكون:

baseKey hKeyLocalMachine = baseKey.HKEY_LOCAL_MACHINE;
uint value = (uint)hKeyLocalMachine;

أو فقط:

uint value = (uint)baseKey.HKEY_LOCAL_MACHINE;



Related


Tags

c#   enums