我需要创建一个适配器类。
trip.Resource是一个名为ModalityResource的枚举。
transportOrderTrip.ModalityResource是一个字符串。
if(Enum.IsDefined(typeof(ModalityResource), transportOrderTrip.ModalityResource))
trip.Resource = Enum.Parse(typeof(ModalityResource), transportOrderTrip.ModalityResource, true);
此处ModalityResource的可能值:
public enum ModalityResource { NONE, CHASSIS, TRAILER }
我得到的错误就是这个:不能隐式地将类型'object'转换为'ModalityResource'。任何人都可能知道出了什么问题?
编辑:没关系,有点困惑。 trip.Resource = (ModalityResource) Enum.Parse(typeof (Shared.Interfaces.ModalityResource), transportOrderTrip.ModalityResource, true);
答案 0 :(得分:2)
您必须将Enum.Parse
的结果转换为ModalityResource
。
在.NET 4或更高版本中,您还可以使用函数的泛型重载。
trip.Resource = (ModalityResource)Enum.Parse(typeof(ModalityResource), transportOrderTrip.ModalityResource, true);
答案 1 :(得分:1)
你需要作为演员。
Enum.Parse method returns object
将您的代码更改为以下
(ModalityResource)Enum.Parse(typeof(ModalityResource), transportOrderTrip.ModalityResource, true);
答案 2 :(得分:1)
您需要将其转换为所需的Enum
类型,因为返回类型为object
(ModalityResource) Enum.Parse(typeof(ModalityResource),
transportOrderTrip.ModalityResource, true);
上