Si j'ai un ENUM comme celui-ciPourquoi un paramètre Nullable <T> n'est pas un paramètre d'attribut personnalisé valide lorsque T est?
public enum Hungry
{
Somewhat,
Very,
CouldEatMySocks
}
et un attribut personnalisé comme celui-ci
public class HungerAttribute : Attribute
{
public Hungry HungerLevel { get; set; }
public Hungry? NullableHungerLevel { get; set; }
}
je peux faire
[Hunger(HungerLevel = Hungry.CouldEatMySocks)]
public class Thing1
mais je ne peux pas le faire
[Hunger(NullableHungerLevel = Hungry.CouldEatMySocks)]
public class Thing2
Il génère une erreur indiquant que "'NullableHungerLevel' n'est pas un argument d'attribut nommé valide car ce n'est pas un type de paramètre d'attribut valide".
Pourquoi cela n'est-il pas autorisé? Je comprends que fondamentalement ce n'est tout simplement pas sur la liste des types acceptés. Les types valides semblent être des primitives, des énumérations, des chaînes, des types et des tableaux unidimensionnels des types précédents.
Est-ce juste une vieille règle qui n'a pas été mise à jour quand Nullable est arrivé?
Pendant que je suis à l'origine à travers cela dans .NET 3.5 VS2008-il encore ne fonctionne pas dans VS2010 Beta1. –