如果我有这样的为什么T为0时Nullable <T>不是有效的自定义属性参数?
public enum Hungry
{
Somewhat,
Very,
CouldEatMySocks
}
枚举像这样
public class HungerAttribute : Attribute
{
public Hungry HungerLevel { get; set; }
public Hungry? NullableHungerLevel { get; set; }
}
的自定义属性,我可以做到这一点
[Hunger(HungerLevel = Hungry.CouldEatMySocks)]
public class Thing1
,但我不能这样做
[Hunger(NullableHungerLevel = Hungry.CouldEatMySocks)]
public class Thing2
它会生成一个错误,指出“'NullableHungerLevel'不是有效的命名属性参数,因为它不是有效的属性参数类型”。
为什么不允许?我明白,从根本上说,它只是不在接受的类型列表中。有效的类型似乎是前面类型的基元,枚举,字符串,类型和一维数组。
这只是一个旧规则,当Nullable出现时没有更新?
虽然我最初碰到这个在.net 3.5 VS2008它还是来了在VS2010 Beta1中不起作用。 – 2009-09-12 21:43:38