2013-11-04 116 views
1
class Person //I'm want to pass the parameter "Gender" 
{ 
    public string firstName; 
    public string lastName; 
    public int age; 
    //public string gender; 

這是我正在使用的一段代碼。我是編程新手,我正在使用C#。我有一個名爲「性別」的枚舉,它由「男性」和「女性」組成。我有一個名爲「Person」的類,我想傳遞一個參數,告訴系統每個新的「Person」必須有性別,男性或女性。我很確定我應該把這個參數傳遞給靠近這個類的頂端。如何將簡單(枚舉)參數傳遞給C#中的類?

+0

Google for'enum'。它們的工作方式與C/C++ – SJuan76

+4

不同,您正在編程的系統不是非常具有包容性。 –

+2

tom.dietrich說得很好......今天,性問題很複雜,特別是在西方世界(今天的消息是德國不再需要註冊新生兒的性別,以防有些疑問)。 – SJuan76

回答

0
class Person 
{ 
    public string firstName; 
    public string lastName; 
    public int age; 
    public Gender Gender; 
} 

enum類型在C#中的更多信息,請參見MSDN

2

我想傳遞一個參數,告訴每一個新Person必須有一個性別

系統你執行的是通過構造函數:

public class Person //I'm want to pass the parameter "Gender" 
{ 
    public string firstName; 
    public string lastName; 
    public int age; 
    public Gender gender; // recommend storing the enum instead of a string 

    public Person (Gender gender) 
    { 
     this.gender = gender; 
    } 
} 

實現了參數刪除一個構造函數「默認」構造函數,所以創建Person的任何人都必須提供性別

我也建議使用性能代替領域但這是一個單獨的問題...

1

首先,你可以很容易地只需添加一個新成員的人的性別有型的性別(這是我認爲,枚舉的名稱):

public Gender Gender; 

既然要強制一個人必須在對象的創建特定性別需要規定在類的構造

public Person(Gender PersonGender) 
{ 
    Gender = PersonGender; 
} 

所以,你的類成爲這樣的事情:

class Person 
{ 
    public string firstName; 
    public string lastName; 
    public int age; 
    public Gender Gender; 

    public Person(Gender PersonGender) 
    { 
     Gender = PersonGender; 
    } 
} 

注意,在C#中,與C/C++,它其實並不重要,你的方法和成員。只要讓他們組織起來,便於閱讀。