0

我有一个带有一些状态值的枚举:

public enum Status
{
    New = 0,
    Dropped = 1,
    Approved = 2
}

是否可以对这样的枚举进行默认转换?将每个状态转换为特定图像而不需要显式转换的默认转换?

谢谢。

4

1 回答 1

2

为什么你不能只做一个字典?

public class StatusHelper
{
    private Dictionary<Status, Image> _map;

    public StatusHelper()
    {
        _map = new Dictionary<Status, Image>()
                       {
                           {Status.New, new Image()},
                           {Status.Dropped, new Image()},
                           {Status.Approved, new Image()},
                       };
    }

    public Image GetImageForStatus(Status status)
    {
        return _map[status];
    }
}

为什么要这样做?好吧,因为您可以使用 IoC 注入您的映射(此处为示例

所以,这变成了;

public StatusHelper(Dictionary<Status, Image> injectedMap)
{
    _map = injectedMap;
}

并在您的应用程序的某个地方设置了一个绑定(未经测试,仅作为示例)

Bind<Dictionary<Status, Image>>()
  .ToConstant(new Dictionary<Status, Image>()
                   {
                       {Status.New, new Image()},
                       {Status.Dropped, new Image()},
                       {Status.Approved, new Image()},
                   })
  .WhenInjectedInto<StatusHelper>();

现在你的助手忘记了你对状态或其图像所做的任何更改

于 2013-09-24T08:07:58.047 回答