簡體   English   中英

如何將簡單(枚舉)參數傳遞給C#中的類?

[英]How do I pass a simple (enumeration) parameter into a class in C#?

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必須有一個性別

你通過構造函數強制執行:

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任何Person 必須提供性別。

我還建議使用屬性而不是字段,但這是一個單獨的問題...

首先,您可以輕松地為人類的性別添加一個性別類型的新成員(我認為,這是枚舉的名稱):

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 ++不同, 方法和成員放在何處並不重要。 只是讓它們井井有條,便於閱讀。

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

有關C#中enum類型的更多信息,請參閱MSDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM