.net - clase enum c#
Enum es Tipo de referencia o Tipo de valor? (4)
Si haces myEnum.SomeValue
, será un tipo de valor.
EntityFramework propiedad Enum en mi clase EntityFramework 5, pero en la base de datos este campo es anulable. Visual Studio da el error de que esta propiedad debe ser una propiedad que admite valores NULL. Mi pregunta es: ¿Enum es un tipo de referencia o un tipo de valor?
supongamos que tenemos enum
public enum eCategory
{
health ,
Weapon
}
y un tipo de eCategory como: -
eCategory currentcategory;
entonces currentcategory es de tipo de valor
System.Enum
es un tipo de referencia, pero cualquier tipo de enumeración específico es un tipo de valor. De la misma manera, System.ValueType
es un tipo de referencia, pero todos los tipos que heredan de él (que no sea System.Enum
) son tipos de valor.
Entonces, si tiene un Foo
enum y quiere una propiedad que se puede anular, ¿necesita el tipo de propiedad para ser Foo?
.
public enum TestReferenceOrValue
{
one, two, three
}
var a = TestReferenceOrValue.one;
var b = a;
b = TestReferenceOrValue.three;
Si las enumeraciones son por referencia, cambiar b
afecta a
Console.Write(a);
→ uno
Console.Write(b);
→ tres
una gran herramienta en línea para cSharp => http://csharppad.com/