2012-11-30 96 views
0

我发现下面的代码通过网络搜索,我不明白为什么作者使用该类的枚举。是否有价值限制?它是这样的,只有'男性'和'女性'的字符串值可以采用哪一种?在这个类中使用枚举有什么作用?

public class Person 
{ 
    public enum Sex 
    { 
     Male, 
     Female, 
    } 
    public string Name { get; set; } 
    public bool Moustache { get; set; } 
    public bool Goatee { get; set; } 
    public bool Beard { get; set; } 
    public Sex WhichSex { get; set; } 
    public double Height { get; set; } 
    public DateTime BirthDate { get; set; } 
    public bool Favorite { get; set; }  
} 
+3

也许他们计划稍后再扩展它。 – Douglas

+1

@Douglas如果他们把它做成旗子,它会更容易 –

+3

'if(WhichSex == Sex.Female &&(Beard || Mustache || Goatee))Favorite = false;' –

回答

12

枚举被用作表示数值数据的一种方式,在编程时更易于识别。

在枚举后面,是从0开始的整数数据类型,因此在这种情况下,Male为0,Female为1.这允许您在代码中包含字符串Male和Female,并将结果存储为整数在存储和带宽上更容易的字符串。

枚举的原因很简单。他们可以对其进行约束并获取字符串“男性”或“女性”进行报告,并且如果需要,他们还可以在道路后面为“未知”或“未指定”添加另一个值。

http://msdn.microsoft.com/en-us/library/sbbt4032%28v=vs.80%29.aspx

+1

啊哈,现在我明白了。非常感谢您 –

+0

没问题!我的荣幸。 –

1

枚举用于将数据限制为一组特定的值,例如:

enum Month 
{ 
    January, 
    February, 
    March, 
    April, 
    May, 
    June, 
    July, 
    August, 
    September, 
    October, 
    November, 
    December 
} 

然后,在代码,只要一Month类型称为为,调用代码可以参考本月枚举的成员之一(例如:var month = Month.February)。

+5

真的吗? '(月)13;':P –

+0

@JonB是的,我可能不应该使用“唯一”......这有点绝对。 –