Validation des enums

Validation des enums - C#/.NET managed - Programmation

Marsh Posté le 23-03-2006 à 21:13:57    

Salut,
Je viens de me coder une petite fonction pour valider un _enum_,
c'est a dire verifier que la valeur de la variable soit bien definie.
 

Code :
  1. class Validator
  2. {
  3.     /// <summary>
  4.     /// Ensure a value is defined in an enumeration.
  5.     /// </summary>
  6.     /// <exception cref="InvalidCastException"/>
  7.     public static void CheckEnum<TEnum>(TEnum value)
  8.     {
  9.         Type type = typeof(TEnum);
  10.         if (!System.Enum.IsDefined(type, value))
  11.         {
  12.             string message = string.Format("{0} is not defined in {1} enumeration", value, type);
  13.             throw new InvalidCastException(message);
  14.         }
  15.     }
  16.     //
  17.     // Exemple
  18.     //
  19.     enum Lol : byte
  20.     {
  21.         Rofl,
  22.         Ptdr,
  23.         Lmao
  24.     }
  25.     public void Main()
  26.     {
  27.         Lol lol = Lol.Rofl;
  28.         CheckEnum(lol); // Ok
  29.         lol = (Lol)5; // Ok, mais 5 n'est pas definie dans l'enum
  30.         CheckEnum(lol); // Balance un exception             
  31.     }
  32. }


Je me demandais s'il est possible d'automatiser la validation a chaque cast (avec un attribut ou autre) ?
 
Merci.

Reply

Marsh Posté le 23-03-2006 à 21:13:57   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed