/// <summary> Obtenez le nom enum en fonction de la valeur de l’enum /// </summary> <typeparam name="T"></typeparam> <param name="key"></param> /// <returns></returns> chaîne statique publique GetEnumNameByKey<T>(int key) { nom de la chaîne Str = chaîne. Vide ; type var = typede(T) ; nameStr = Enum.GetName(type, key) ; retourner nomStr ; }
/// <summary> Obtenez le nom enum en fonction de la valeur de l’enum /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> chaîne statique publique GetEnumNameByKey<T>(T t) { nom de la chaîne Str = chaîne. Vide ; type var = typede(T) ; nameStr = Enum.GetName(type, t) ; retourner nomStr ; }
/// <summary> Les chaînes sont converties en types enum /// </summary> <typeparam name="T"></typeparam> <param name="str"></param> <param name="t"></param> /// <returns></returns> bool statique privé StringConvertToEnum<T>(string str, out T t) où T : new() { var obj = faux ; t = nouveau T() ; essaie { t = (T)Enum. Analyse (typede(T), force) ; obj = vrai ; } catch (Exception ex) { obj = faux ; }
retour obj ; }
/// <summary> Obtenez une collection de noms d’enums /// </summary> <typeparam name="T"></typeparam> /// <returns></returns> chaîne statique publique[] GetNamesArr<T>() { retourner Enum.GetNames(typeof(T)) ; }
/// <summary> Convertir les enums en collections de dictionnaires /// </summary> <typeparam name="T"> énumérer les types</typeparam> /// <returns></returns> Dictionnaire<chaîne statique publique, int> GetEnumDic<T>() {
Dictionary<string, int> resultList = new Dictionary<string, int>() ; Type type = typede(T) ; var strList = GetNamesArr<T>(). ToList() ; foreach (clé de chaîne dans strList) { string val = Enum.Format(type, Enum.Parse(type, key), « d ») ; resultList.Add(key, int. Parse(val)) ; } retourner résultList ; }
/// <summary> Obtenez une description des paramètres /// </summary> <typeparam name="T"></typeparam> <param name="t"></param> /// <returns></returns> chaîne statique publique <T>GetDescriptionByKey(T t) { var type = t.GetType() ; FieldInfo fieldInfo = type. GetField(GetEnumNomByKey<T>(t)) ; AttributAttribut DescriptionAttribute = Attribut. GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) comme DescriptionAttribute ; Var Description = attribut. Description ; retour Description ; }
|