2013-11-04 78 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++,它其实并不重要,你的方法和成员。只要让他们组织起来,便于阅读。