/// <summary> Отримайте ім'я enum, виходячи з значення enum /// </summary> <typeparam name="T"></typeparam> <param name="key"></param> /// <returns></returns> публічний статичний рядок GetEnumNameByKey<T>(int key) { назва рядкаStr = рядок. Порожньо; var type = typeof(T); nameStr = Enum.GetName(type, key); повернути ім'яStr; }
/// <summary> Отримайте ім'я enum, виходячи з значення enum /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> публічний статичний рядок GetEnumNameByKey<T>(T t) { назва рядкаStr = рядок. Порожньо; var type = typeof(T); nameStr = Enum.GetName(type, t); повернути ім'яStr; }
/// <summary> Струни перетворюються на типи enum /// </summary> <typeparam name="T"></typeparam> <param name="str"></param> <param name="t"></param> /// <returns></returns> приватний статичний bool StringConvertToEnum <T>(string str, out T t), де T : new() { var obj = неправда; t = новий T(); спробуйте { t = (T)Enum.Parse(typeof(T), str); obj = true; } catch (виняток, наприклад) { obj = неправда; }
Повернення OBJ; }
/// <summary> Отримайте колекцію енум-імен /// </summary> <typeparam name="T"></typeparam> /// <returns></returns> Публічний статичний рядок[] GetNamesArr<T>() { повернути Enum.GetNames(typeof(T)); }
/// <summary> Конвертація enums у словникові колекції /// </summary> <typeparam name="T"> перераховувати типи</typeparam> /// <returns></returns> публічний статичний словник<рядковий, int> GetEnumDic<T>() {
Словник<рядок, int> resultList = новий словник<рядок, int>(); Тип типу = typeof(T); var strList = GetNamesArr<T>(). ToList(); foreach (string key у strList) { string val = Enum.Format(type, Enum.Parse(type, key), "d"); resultList.Add(key, int. Parse(val)); } return resultList; }
/// <summary> Отримайте опис параметрів /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> публічний статичний рядок <T>GetDescriptionByKey(T t) { var type = t.GetType(); FieldInfo fieldInfo = тип. GetField(GetEnumNameByKey<T>(t)); DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) як DescriptionAttribute; var Опис = атрибут. Опис; Повернення Опис; }
|