首页 新闻 会员 周边

我想问一下这个在visual studio下编译错误

0
[已解决问题] 解决于 2016-12-30 09:11

viewDto.DiagnosisType = CommonHelper.GetDiagnosisTypeEnumText(viewdto.DiagnosisType);

 

错误提示:

错误 48 无法将类型“string”隐式转换为“Dto.DiagnosisTypeEnum” C:\Users\Administrator\Desktop\new project\trunk\1.0\ServerHostWeb\Controllers\PatientController.cs 189 45 ServerHostWeb

问题补充:

IList<PatientDiagnosisDto> diagnosissList = svc.GetPatientDiagnosis(patientId);

List<PatientDiagnosisViewDto> list = new List<PatientDiagnosisViewDto>();
foreach (PatientDiagnosisDto viewdto in diagnosissList)
{
PatientDiagnosisViewDto viewDto = new PatientDiagnosisViewDto();
viewDto.DiagnosisType = CommonHelper.GetDiagnosisTypeEnumText(viewdto.DiagnosisType);

}

var diagnosiss = diagnosissList.Where(d => d.Status == ValidStatusEnum.Valid).OrderBy(d => d.DiagnosisType);

info.DiagnosissList = diagnosiss.ToList();

 

 

commonhelper的代码

public static string GetDiagnosisTypeEnumText(DiagnosisTypeEnum diagnosisType)
{

switch (diagnosisType)
{
case DiagnosisTypeEnum.Principal:
return "主诊断";
case DiagnosisTypeEnum.Protopathy:
return "原病发";
case DiagnosisTypeEnum.Complication:
return "并发症";
case DiagnosisTypeEnum.Suspected:
return "疑似诊断";
default:
return "其他诊断";
}

}

糯米好吃的主页 糯米好吃 | 初学一级 | 园豆:64
提问于:2016-12-28 09:20
< >
分享
最佳答案
0

哥们儿,又见CommonHelper。string类型不能转换成你的Dto.DiagnosisTypeEnum这种枚举类型,我就不明白了,为什么要把string转换成枚举类型,不过定义枚举的时候你可以这样,public Enum ErrorType : int,不过是在要转换的话,还是写个工具类吧

奖励园豆:5
大师兄丶 | 小虾三级 |园豆:843 | 2016-12-28 10:09

du多谢大师兄  但是工具类怎么写啊

糯米好吃 | 园豆:64 (初学一级) | 2016-12-28 10:33

w哦刚开始学  我尝试一下  多谢  

糯米好吃 | 园豆:64 (初学一级) | 2016-12-28 10:34

@糯米好吃: 给你一个工具类吧,是我自己写的。

/// <summary>
    /// 对Object进行扩展
    /// </summary>
    public static class ObjectExtensions
    {
        #region 把对象类型转换成指定的类型,转化失败时返回指定默认值
        /// <summary>
        /// 把对象类型转换成指定的类型,转化失败时返回指定默认值
        /// </summary>
        /// <typeparam name="T">动态类型</typeparam>
        /// <param name="value">要转换的原对象</param>
        /// <param name="detaultValue">转换失败时返回的默认值</param>
        /// <returns>转化后指定类型对象,转化失败时返回指定默认值</returns>
        public static T CastTo<T>(this object value, T detaultValue)
        {
            object result;
            Type t = typeof(T);
            try
            {
                result = t.IsEnum ? System.Enum.Parse(t, value.ToString()) : Convert.ChangeType(value, t);

            }
            catch (Exception)
            {
                return detaultValue;
            }

            return (T)result;
        }
        #endregion

        #region 把对象类型转换成指定的类型,转化失败时返回类型默认值
        /// <summary>
        /// 把对象类型转换成指定的类型,转化失败时返回类型默认值
        /// </summary>
        /// <typeparam name="T">动态类型</typeparam>
        /// <param name="value">要转换的原对象</param>
        /// <returns>转化后指定类型对象,转化失败时返回类型默认值</returns>
        public static T CastTo<T>(this object value)
        {
            object result;
            Type t = typeof(T);
            try
            {
                if (t.IsEnum)
                {
                    result = System.Enum.Parse(t, value.ToString());
                }
                else if (t == typeof(Guid))
                {
                    result = Guid.Parse(value.ToString());
                }
                else
                {
                    result = Convert.ChangeType(value, t);
                }

            }
            catch (Exception)
            {
                result = default(T);
            }

            return (T)result;
        }
        #endregion
    }
大师兄丶 | 园豆:843 (小虾三级) | 2016-12-28 11:01

@大师兄丶: 多谢大师兄  哭了

糯米好吃 | 园豆:64 (初学一级) | 2016-12-28 13:02

@大师兄丶: 大师兄你学c#多久了  工作多久了 我还有机会吗

糯米好吃 | 园豆:64 (初学一级) | 2016-12-28 14:19

@糯米好吃: 才开始学都是这样的,没有人能够一步登天,慢慢一点点的理解,不要想到一下子就全部理解学会了。另外我参加工作一年多了,去年这个时候,还是个准大学生。加油,哥们了!

大师兄丶 | 园豆:843 (小虾三级) | 2016-12-28 15:04

专科还是本科?

糯米好吃 | 园豆:64 (初学一级) | 2016-12-28 15:49

@糯米好吃: 211

大师兄丶 | 园豆:843 (小虾三级) | 2016-12-30 16:12
其他回答(1)
0

类型转换错误啊,string不能转换Dto.DiagnosisTypeEnum,使用强制转换

silianpan | 园豆:571 (小虾三级) | 2016-12-28 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册