-6

人を定義するクラス (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 に設定するコンストラクターを宣言する正しい方法ですか?

(問題は、新しい人を作成するときに、その人に名前、年齢、身長などを与えることができるはずです.)

4

3 に答える 3

4

int を null として宣言することはできません。ただし、次のようにnull可能なintにすることで、null可能にすることができます。

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

コンストラクターに de ss 番号を含めるだけです。デフォルトでは、他のすべての参照型は null になります。double や int などの値の型を null にすることはできないため、エラーが発生します。

于 2013-08-25T20:19:28.300 に答える
1

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;
        }
    }
}
于 2013-08-25T20:30:24.883 に答える