58

EntityFramework 5 クラスでEnum プロパティを使用しましたが、データベースではこのフィールドは null 可能です。Visual Studio では、このプロパティは null 許容プロパティでなければならないというエラーが表示されます。私の質問は: Enum は参照型ですか、それとも値型ですか?

4

4 に答える 4

95

System.Enumは参照型ですが、特定の列挙型は値型です。同様に、System.ValueTypeは参照型ですが、それを継承するすべての型 ( を除くSystem.Enum) は値型です。

したがって、列挙Foo型があり、null 可能なプロパティが必要な場合は、プロパティの型を にする必要がありますFoo?

于 2013-01-28T11:48:16.763 に答える
14

するとmyEnum.SomeValue値型になります。

于 2013-01-28T11:50:25.553 に答える
4

列挙型があるとします

public enum eCategory
{
    health ,        
    Weapon
}

および次のようなタイプの eCategory :-

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);→ one
Console.Write(b);→ three

cSharp の優れたオンライン ツール => http://csharppad.com/

于 2016-06-26T18:45:46.117 に答える