与建造商一起申报人员
本文关键字:一起 | 更新日期: 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;
}
}
}