从数据库中取整数值并将其强制转换为Enum

时间:2015-07-23 05:55:09

标签: c# enums

我是Enum类型的新手,似乎我无法在项目中找到解决方法。我被要求使用Enum来创建具有预定义值的组合框。我做的是:

namespace Models
{
    public class LastStatus
    {
        public LastStatus()
        {
        }

        public int ID { get; set; }
        public enum description { inProgress, done, accepted }

        public description desc;
        public int constant { get; set; }

    }
}

这是我在使用它之前将DB模型转换为我自己的模型的方法:(例如,将它们添加到List中,然后迭代它以添加到aspx.cs中的组合框列表项)

private Models.LastStatus ConvertStatusDbToObject(DBModel.myDB.LastStatu status)
        {
            Models.LastStatus statusObject = new Models.LastStatus();
            statusObject.ID = status.ID;
            //statusObject.description = status.description;
            (LastStatus.description)statusObject.desc = (LastStatus.description)status.@const;
            statusObject.constant = status.@const;

            return statusObject;
        }

我在这一行得到错误:

(LastStatus.description)statusObject.desc = (LastStatus.description)status.@const;

尝试将DB Model的整数值强制转换为枚举类型时。不是desc财产吗?

  

错误23作业的左侧必须是变量,   财产或指数

2 个答案:

答案 0 :(得分:4)

(LastStatus.description)statusObject.desc = (LastStatus.description)status.@const;更改为statusObject.desc = (LastStatus.description)status.@const;

你不需要自己施放财产!

答案 1 :(得分:1)

首先,在声明枚举时为整数值指定整数值。例如:

public enum description { inProgress = 0, done = 1, accepted = 2}

第二次,我建议您不要在班级中使用公共字段。改变

public description desc;

public description desc { get; set; };