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”必须有性别,男性或女性。我很确定我应该在靠近班级的顶部附近传递参数。

4

3 回答 3

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;
    }
}

使用参数实现构造函数会删除“默认”构造函数,因此创建 a 的任何人都Person 必须提供性别。

我还建议使用属性而不是字段,但这是一个单独的问题......

于 2013-11-04T18:58:29.363 回答
1

首先,您可以轻松地为该人的 Gender 添加一个具有 Gender 类型的新成员(我假设这是枚举的名称):

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++ 不同,将方法和成员放在哪里并不重要。只需让它们井井有条,以便于阅读。

于 2013-11-04T19:00:17.363 回答
0
class Person
{
    public string firstName;
    public string lastName;
    public int age;
    public Gender Gender;
}

有关C#中类型的更多信息,请参阅MSDN 。enum

于 2013-11-04T18:56:18.800 回答