2012-11-30 16 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是的,我可能不應該使用「唯一」......這有點絕對。 –