Подтвердить что ты не робот

Enum - ссылочный тип или тип значения?

Я использовал свойство Enum в классе EntityFramework 5, но в базе данных это поле имеет значение NULL. Visual studio дает ошибку, что это свойство должно быть свойством nullable. Мой вопрос: есть ли перечисляемый тип ссылки или тип значения?

4b9b3361

Ответ 1

System.Enum является ссылочным типом, но любой конкретный тип перечисления является типом значения. Точно так же System.ValueType является ссылочным типом, но все типы, наследующие его (кроме System.Enum), являются типами значений.

Итак, если у вас есть enum Foo и вы хотите свойство nullable, вам нужно, чтобы тип свойства был Foo?.

Ответ 2

Если вы выполните myEnum.SomeValue, это будет тип значения.

Ответ 3

public enum TestReferenceOrValue
{
    one, two, three    
}
var a = TestReferenceOrValue.one;
var b = a;
b = TestReferenceOrValue.three;

Если перечисления являются ссылочными, изменение b влияет на a
Console.Write(a); → один
Console.Write(b); → three

отличный онлайн-инструмент для cSharp = > http://csharppad.com/