-6

我有一个定义人的类(人),并包含以下成员:

    public int socialSecurityNr;
    public string name;
    public int age;
    public double heigth;
    public double weigth;
    public string Nationality;
    public int shoeSize;

现在,我想为插入社会安全号码的值并将其余字段设置为空值的类创建一个构造函数。我试过这个:

   public People(int socialSecurity, string NAME, string AGE, double HEIGTH)
        {
            socialSecurity= socialSecurityNr;
            this.name = null;
            this.age =  null;
            this.weigth = 0;
        }

这是声明应该设置社会安全号码并将其余部分设置为空的构造函数的正确方法吗?

(问题是当我创建一个新人时,我应该能够给那个人一个名字、年龄、身高等。)

4

3 回答 3

4

您不能将 int 声明为 null。您可以通过像这样将其设置为可空的 int 来使其可空:

public int? age;
于 2013-08-25T20:19:21.163 回答
2

只需在构造函数中包含 de ss 编号。默认情况下,所有其他引用类型将为空。发生错误是因为值类型(如 double 和 int)不能为空。

于 2013-08-25T20:19:28.300 回答
1

如果您没有实例化人员类的全部值,则可以使用 Nullable 类型,带有“?” 在定义。

对于样品:

public class Person
{
    public int socialSecurityNr;
    public string name;
    public int age;
    public double heigth;

    public Person(int p_socialSecurityNr, string p_name, int? p_age, double? p_heigth)
    {
        this.socialSecurityNr = p_socialSecurityNr; // Can't be null 
        if (p_name != null)
        {
            this.name = p_name;
        }
        if (p_age != null)
        {
            this.age = p_age.Value;
        }
        if (p_heigth != null)
        {
            this.heigth = p_heigth.Value;
        }
    }
}
于 2013-08-25T20:30:24.883 回答