枚举成员数据类型

Teo*_*ahi 0 c# enums

有没有办法为枚举成员分配数据类型; 例如;

  public enum CarPartEnum
{
    [string]
    Color,
    [int]
    Speed
}
Run Code Online (Sandbox Code Playgroud)

我为什么要这样做?因为它在数据库中的记录方式,所以有一个CarProperties表.表中有一个键值对.

关键:颜色,价值:红色; 关键:速度,价值:250

因此,当我从数据库中读取它时,我希望将键转换为CarPartEnum并将值转换为正确的数据类型.

Ode*_*ded 6

没有.

所有enum类型都基于整数类型.您不能将类型分配给特定的枚举成员.

请参阅Enum ClassMSDN:

枚举是一组命名常量,其基础类型是任何整数类型.如果未显式声明基础类型,则使用Int32.Enum是.NET Framework中所有枚举的基类.


您可以使用属性为成员提供额外的元数据,但您需要使用反射才能使用这些属性.

但是,根据您的描述,您可能需要一个自定义类来反映数据库中的内容.

public class CarPart
{
    public string Color { get; set; }
    public int Speed { get; set; }
}
Run Code Online (Sandbox Code Playgroud)