如何将简单(枚举)参数传递给C#中的类?

时间:2013-11-04 18:55:08

标签: c# class parameters enumeration

class Person //I'm want to pass the parameter "Gender"
{
    public string firstName;
    public string lastName;
    public int age;
    //public string gender;

这是我正在使用的一段代码。我是编程的新手,我正在使用C#。我有一个名为“性别”的枚举,它由“男性”和“女性”组成。我有一个名为“Person”的类,我想传递一个参数告诉系统每个新的“人”必须有性别,男性或女性。我很确定我应该将参数传递给靠近班级的顶部附近。

3 个答案:

答案 0 :(得分: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 :(得分: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 ++不同,在放置方法和成员的位置并不重要。只是让它们井井有条,便于阅读。

答案 2 :(得分:0)

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

有关C#中enum类型的详细信息,请参阅MSDN