我需要创建一个适配器类。
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);发布于 2013-07-15 18:20:33
您必须将Enum.Parse的结果强制转换为ModalityResource。在.NET 4或更高版本中,您还可以使用函数的泛型重载。
trip.Resource = (ModalityResource)Enum.Parse(typeof(ModalityResource), transportOrderTrip.ModalityResource, true);另请参阅
http://msdn.microsoft.com/en-us/library/dd783499.aspx
发布于 2013-07-15 18:21:21
你需要扮演演员。
Enum.Parse method returns object将您的代码更改为以下代码
(ModalityResource)Enum.Parse(typeof(ModalityResource), transportOrderTrip.ModalityResource, true);发布于 2013-07-15 18:22:19
由于返回类型为object,因此需要将其强制转换为所需的Enum类型
(ModalityResource) Enum.Parse(typeof(ModalityResource),
transportOrderTrip.ModalityResource, true);https://stackoverflow.com/questions/17651867
复制相似问题