Is it possible to add custom properties to c# enum object?

后端 未结 2 938
深忆病人
深忆病人 2021-01-22 20:16

Using c# Is it possible using to associate properties for each enum items?

I have used the Description Attribute to add English description to an enum item.

2条回答
  •  孤城傲影
    2021-01-22 20:43

    You can create yet another extention method for this.

    public static object Create(this MyEnum enum)
    {
        switch (enum)
        {
             case MyEnum.First:
                  return new { IsFirst = true, UnitType = 1}];
             case MyEnum.Second:
                  return new ...
             default:
                  ...
        }
    }
    

    then use it like so:

    dynamic first = MyEnum.First.Create();
    var isFirst = first.IsFirst;
    

    but you really should consider creating a factory to create your objects.

提交回复
热议问题