与建造商一起申报人员

本文关键字:一起 | 更新日期: 2023-09-27 18:28:54

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

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

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

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

这是声明一个构造函数的正确方法吗?该构造函数应该设置社会保障号并将其余部分设置为null?

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

与建造商一起申报人员

不能将int声明为null。您可以将其设置为可为null的int,如下所示:

public int? age;

只需在构造函数中包含数字。默认情况下,所有其他引用类型都将为null。错误的发生是因为值类型,如double和int不能为null。

如果没有实例化person类的全部值,则可以使用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;
        }
    }
}