Почему Nullable <T> не является допустимым параметром пользовательского атрибута, если 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?

Ответы на вопрос(4)

Ваш ответ на вопрос