我在我的EntityFramework 5 类中使用了 Enum 属性,但在数据库中这个字段可以为空。Visual Studio 给出此属性必须是可为空的属性的错误。我的问题是:枚举是引用类型还是值类型?
user1318951
问问题
39271 次
4 回答
95
System.Enum
是引用类型,但任何特定的枚举类型都是值类型。同样,System.ValueType
是引用类型,但从它继承的所有类型(除了System.Enum
)都是值类型。
所以如果你有一个枚举Foo
并且你想要一个可以为空的属性,你需要属性类型是Foo?
.
于 2013-01-28T11:48:16.763 回答
14
如果你这样做myEnum.SomeValue
,它将是一个值类型。
于 2013-01-28T11:50:25.553 回答
4
假设我们有枚举
public enum eCategory
{
health ,
Weapon
}
和一种电子类别,例如:-
eCategory currentcategory;
那么 currentcategory 是值类型
于 2018-06-20T09:17:07.140 回答
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);
→三
一个很棒的 cSharp 在线工具 => http://csharppad.com/
于 2016-06-26T18:45:46.117 回答