Выражение цвета фона вызывает удивительный результат

Ниже приведен метод в C # для получения значения перечисления по строке

    ///
    /// Method to get enumeration value from string value.
    ///
    ///
    ///

    public T GetEnumValue<T>(string str) where T : struct, IConvertible
    {
        if (!typeof(T).IsEnum)
        {
            throw new Exception("T must be an Enumeration type.");
        }
        T val = ((T[])Enum.GetValues(typeof(T)))[0];
        if (!string.IsNullOrEmpty(str))
        {
            foreach (T enumValue in (T[])Enum.GetValues(typeof(T)))
            {
                if (enumValue.ToString().ToUpper().Equals(str.ToUpper()))
                {
                    val = enumValue;
                    break;
                }
            }
        }

        return val;
    }

. Ниже приведен метод в C # для получения значения enum значением int.

    ///
    /// Method to get enumeration value from int value.
    ///
    ///
    ///

    public T GetEnumValue<T>(int intValue) where T : struct, IConvertible
    {
        if (!typeof(T).IsEnum)
        {
            throw new Exception("T must be an Enumeration type.");
        }
        T val = ((T[])Enum.GetValues(typeof(T)))[0];

        foreach (T enumValue in (T[])Enum.GetValues(typeof(T)))
        {
            if (Convert.ToInt32(enumValue).Equals(intValue))
            {
                val = enumValue;
                break;
            }             
        }
        return val;
    }

Если у меня есть перечисление следующим образом:

public enum TestEnum
    {
        Value1 = 1,
        Value2 = 2,
        Value3 = 3
    }

, то я могу использовать вышеуказанные методы как

TestEnum reqValue = GetEnumValue<TestEnum>("Value1");  // Output: Value1
TestEnum reqValue2 = GetEnumValue<TestEnum>(2);       // OutPut: Value2

Надеюсь, это поможет.

0
задан aucuparia 26 February 2015 в 08:30
поделиться