我有一个带有一些状态值的枚举:
public enum Status
{
New = 0,
Dropped = 1,
Approved = 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>();
现在你的助手忘记了你对状态或其图像所做的任何更改