/// <summary> Získejte název enum podle hodnoty enum /// </summary> <typeparam jméno="T"></typeparam> <název parametru="klíč"></param> /// <returns></returns> public static string GetEnumNameByKey<T>(int key) { název řetězce Str = řetězec. Prázdné; var type = typeof(T); nameStr = Enum.GetName(type, key); vrátit jménoStr; }
/// <summary> Získejte název enum podle hodnoty enum /// </summary> <typeparam jméno="T"></typeparam> <název parametru="t"></param> /// <returns></returns> public static string GetEnumNameByKey<T>(T t) { název řetězce Str = řetězec. Prázdné; var type = typeof(T); nameStr = Enum.GetName(type, t); vrátit jménoStr; }
/// <summary> Struny se převádějí na enum typy /// </summary> <typeparam jméno="T"></typeparam> <název parametru="str"></param> <název parametru="t"></param> /// <returns></returns> private static bool StringConvertToEnum<T>(string str, out T t) kde T : new() { var obj = nepravdivý; t = nový T(); zkus { t = (T)Enum.Parse(typeof(T), str); obj = pravda; } chytit (Výjimka ex) { obj = nepravdivý; }
return objekt; }
/// <summary> Získejte sbírku jmen enum /// </summary> <typeparam jméno="T"></typeparam> /// <returns></returns> veřejný statický řetězec[] GetNamesArr<T>() { return Enum.GetNames(typeof(T)); }
/// <summary> Převádět enumy na sbírky slovníků /// </summary> <typeparam jméno="T"> enumerátové typy</typeparam> /// <returns></returns> public static Dictionary<string, int> GetEnumDic<T>() {
Dictionary<string, int> resultList = nový Dictionary<string, int>(); typ = typ(T); var strList = GetNamesArr<T>(). ToList(); foreach (stringový klíč ve strList) { string val = Enum.Format(type, Enum.Parse(type, key), "d"); resultList.Add(key, int. Parse(val)); } vrátit resultList; }
/// <summary> Získejte popis parametrů /// </summary> <typeparam jméno="T"></typeparam> <název parametru="t"></param> /// <returns></returns> public static string GetDescriptionByKey<T>(T t) { var type = t.GetType(); FieldInfo fieldInfo = typ. GetField(GetEnumNameByKey<T>(t)); DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) jako DescriptionAttribute; var Popis = atribut. Popis; return Popis; }
|