EnumHelper.cs

Description du code

EnumHelper.cs est un fichier du projet BrolDev.
Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.

Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.

Code source ou contenu du fichier

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Reflection;
  5.  
  6. namespace be.gaudry.model.enums
  7. {
  8. /// <summary>
  9. /// Provides a static utility object of methods and properties to interact
  10. /// with enumerated types.
  11. /// Source : http://www.codeproject.com/useritems/enumdatabinding.asp
  12. ///
  13. /// public enum SimpleEnum
  14. /// {
  15. /// [EnumDescription("Today")]
  16. /// Today,
  17. /// ...
  18. ///
  19. /// ComboBox combo = new ComboBox();
  20. /// combo.DataSource = EnumHelper.ToList(typeof(SimpleEnum));
  21. /// combo.DisplayMember = "Value";
  22. /// combo.ValueMember = "Key";
  23. /// </summary>
  24. public static class EnumHelper
  25. {
  26. /// <summary>
  27. /// Gets the <see cref="DescriptionAttribute" /> of an <see cref="Enum" />
  28. /// type value.
  29. /// </summary>
  30. /// <param name="value">The <see cref="Enum" /> type value.</param>
  31. /// <returns>A string containing the text of the
  32. /// <see cref="DescriptionAttribute"/>.</returns>
  33. public static string GetDescription(Enum value)
  34. {
  35. if (value == null)
  36. {
  37. throw new ArgumentNullException("value");
  38. }
  39.  
  40. string description = value.ToString();
  41. FieldInfo fieldInfo = value.GetType().GetField(description);
  42. EnumDescriptionAttribute[] properties = null;
  43. try
  44. {
  45. properties = (EnumDescriptionAttribute[])fieldInfo.GetCustomAttributes(
  46. typeof(EnumDescriptionAttribute),
  47. false
  48. );
  49. }
  50. catch
  51. {
  52.  
  53. }
  54. if (properties != null && properties.Length > 0)
  55. {
  56. description = properties[0].Description;
  57. }
  58. return description;
  59. }
  60.  
  61. /// <summary>
  62. /// Converts the <see cref="Enum" /> type to an <see cref="IList" />
  63. /// compatible object.
  64. /// </summary>
  65. /// <param name="type">The <see cref="Enum"/> type.</param>
  66. /// <returns>An <see cref="IList"/> containing the enumerated
  67. /// type value and description.</returns>
  68. public static IList ToList(Type type)
  69. {
  70. if (type == null)
  71. {
  72. throw new ArgumentNullException("type");
  73. }
  74.  
  75. ArrayList list = new ArrayList();
  76. Array enumValues = Enum.GetValues(type);
  77.  
  78. foreach (Enum value in enumValues)
  79. {
  80. list.Add(getKeyValuePair(value));
  81. }
  82.  
  83. return list;
  84. }
  85.  
  86. public static KeyValuePair<Enum, string> getKeyValuePair(Enum value)
  87. {
  88. if (value == null)
  89. {
  90. throw new ArgumentNullException("value");
  91. }
  92. return new KeyValuePair<Enum, string>(value, GetDescription(value));
  93. }
  94.  
  95. public static Dictionary<Enum, string> getDictionary(Type type)
  96. {
  97. Dictionary<Enum, string> dico = new Dictionary<Enum, string>();
  98. if (type == null)
  99. {
  100. return dico;
  101. }
  102.  
  103. Array enumValues = Enum.GetValues(type);
  104.  
  105. foreach (Enum value in enumValues)
  106. {
  107. dico.Add(value, GetDescription(value));
  108. }
  109.  
  110. return dico;
  111. }
  112.  
  113. public static Enum getEnum(Object keyValuePair)
  114. {
  115. if (keyValuePair == null) return null;
  116. try
  117. {
  118. KeyValuePair<Enum, string> kvp = (KeyValuePair<Enum, string>)keyValuePair;
  119. return kvp.Key;
  120. }
  121. catch (InvalidCastException)
  122. {
  123. return null;
  124. }
  125. }
  126. }
  127. }

Structure et Fichiers du projet

Afficher/masquer...


Répertoires contenus dans /var/www/bin/sniplets/bibliobrol/broldev/src/model/enums/ 
IcôneNomTailleModification
Pas de sous-répertoires.
IcôneNomTailleModification
| _ Répertoire parent0 octets1714701753 03/05/2024 04:02:33
Fichiers contenus dans /var/www/bin/sniplets/bibliobrol/broldev/src/model/enums/ 
IcôneNomTailleModificationAction
IcôneNomTailleModificationAction
Afficher le fichier .cs|.csTEXT_POSITION.cs531 octets31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csCONFIG_ERROR.cs1.11 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csBORDER_POSITION.cs798 octets31/10/2018 18:33:08-refusé-
Afficher le fichier .cs|.csOPEN_FILE_ACTION.cs734 octets31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csEnumDescriptionAttribute .cs1.07 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csPLUGIN.cs923 octets31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csSTYLE.cs1.42 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csBORDER_STYLE.cs969 octets31/10/2018 18:33:08-refusé-
Afficher le fichier .cs|.csBGWORKER.cs1.12 Ko31/10/2018 18:33:08-refusé-
Afficher le fichier .cs|.csEnumHelper.cs3.86 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csPAGE_ORIENTATION.cs326 octets31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csBROL_EXPORT_FORMAT.cs760 octets31/10/2018 18:33:08-refusé-
Afficher le fichier .cs|.csDGV_EXPORT_FORMAT.cs1.29 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csSYSTEM_ICON.cs2.9 Ko31/10/2018 18:33:09-refusé-
Afficher le fichier .cs|.csPAGE_COUNTERFORMAT.cs442 octets31/10/2018 18:33:09-refusé-

Utilisation de l'explorateur de code

  • Navigation :
    • Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
    • Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
    • La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
    • Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
  • Affichage :
    • Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
  • Actions :
    • Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.

Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-model/enums/EnumHelper.cs.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.