Enum-ссылочный тип или тип значения?
Я использовал свойство Enum в моем EntityFramework 5 класс , но в базе данных это поле является пустым. Visual studio выдает ошибку, что это свойство должно быть свойством nullable. Мой вопрос: Является ли Enum ссылочным типом или типом значения?
4 ответов
System.Enum
является ссылочным типом, но any конкретные тип enum-это тип значения. Точно так же,System.ValueType
является ссылочным типом, но все типы наследования от него (кроме System.Enum
) являются типами значений.
Итак, если у вас есть перечисление Foo
и вы хотите свойство nullable, вам нужно, чтобы тип свойства был Foo?
.
public enum TestReferenceOrValue
{
one, two, three
}
var a = TestReferenceOrValue.one;
var b = a;
b = TestReferenceOrValue.three;
если перечисления по ссылке, меняется b
влияет a
Console.Write(a);
→ одинConsole.Write(b);
→ три
отличный онлайн-инструмент для cSharp =>http://csharppad.com/
предположим, у нас есть перечисление
public enum eCategory
{
health ,
Weapon
}
и типа eCategory, таких как :-
eCategory currentcategory;
тогда currentcategory имеет тип значения