如何对枚举进行空检查

时间:2016-05-12 07:57:44

标签: c# asp.net enums

 public class myclass
    {
        public Details DetailsInfo { get; set; }
        public string name{ get; set; }
        public string Email { get; set; }
        public int subjects{ get; set; }
    }

public enum subjects{
maths,
english,
science,
}

这些科目中有一个词汇。即使我没有为主题输入任何值,它默认为0。这是枚举的行为。有没有办法检查我是否为主题选择了任何值。

注意:我不想在枚举中使用任何未定义的值。

2 个答案:

答案 0 :(得分:5)

您可以通过两种方式解决问题。

首先,定义forbidden to modify the list值(或任何您想要命名的值),代表None,表示没有为0值选择任何内容:

enum

或者,在您的班级public enum subjects{ None = 0, //define this maths, english, science, } )中使用Nullable<subjects>subjects?

myclass

在这两种方法中,第一种更常见。因此,我宁愿使用第一个。

答案 1 :(得分:0)

您可以将课程更改为:

 public class myclass
    {
        public Details DetailsInfo { get; set; }
        public string name{ get; set; }
        public string Email { get; set; }
        public subjects? subject { get; set; }
    }

使主题可以为空。这意味着当你没有设置它。它将为null