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 :
- class Validator
- {
- /// <summary>
- /// Ensure a value is defined in an enumeration.
- /// </summary>
- /// <exception cref="InvalidCastException"/>
- public static void CheckEnum<TEnum>(TEnum value)
- {
- Type type = typeof(TEnum);
- if (!System.Enum.IsDefined(type, value))
- {
- string message = string.Format("{0} is not defined in {1} enumeration", value, type);
- throw new InvalidCastException(message);
- }
- }
- //
- // Exemple
- //
- enum Lol : byte
- {
- Rofl,
- Ptdr,
- Lmao
- }
- public void Main()
- {
- Lol lol = Lol.Rofl;
- CheckEnum(lol); // Ok
- lol = (Lol)5; // Ok, mais 5 n'est pas definie dans l'enum
- CheckEnum(lol); // Balance un exception
- }
- }
|
Je me demandais s'il est possible d'automatiser la validation a chaque cast (avec un attribut ou autre) ?
Merci.