예제 #1
0
    static public T ToEnum <T>(this string str, T defaultValue) where T : Enum
    {
        if (string.IsNullOrEmpty(str))
        {
            return(defaultValue);
        }

        Enum[] allValues = (Enum[])(Enum.GetValues(typeof(Enum)));

        for (int i = 0, n = allValues.Length; i < n; ++i)
        {
            Enum enumValue = allValues[i];

            if (FormatEnumToString(enumValue).Equals(GetLowerCase(str)))
            {
                return((T)enumValue);
            }
        }

        DebugTools.LogWarning("Could not find matching enum for \"{0}\" in enum \"{1}\"!", str, typeof(T).ToString());
        return(defaultValue);
    }