枚举,默认强制转换为映像 (C#)
本文关键字:映像 转换 默认 枚举 | 更新日期: 2023-09-27 18:32:44
我有一个带有一些状态值的枚举:
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>();
现在,您的助手不会对状态或其图像所做的任何更改