2013-08-25 3 views
-5

У меня есть класс (люди), который определяют человек, и содержат эти элементы:Декларирования Лица с застройщиком

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; 
     } 

Это правильный способ объявить конструктор, который должен установить номер социального страхования, и установить остальные обнулить?

(Дело в том, что, когда я создаю новый человек, я должен быть в состоянии дать этому человеку имя, возраст, рост и т.д.)

+2

вы можете дать ошибки? – Fredou

+0

извините. Я считаю, что это единственный способ объявить конструктор, который должен ввести номер социального страхования, и установить остальное на нуль. – user2669196

+0

@Fredou: К каким ошибкам вы относитесь? – stakx

ответ

4

Вы не можете объявить в ИНТАС нуль. Вы можете сделать его нулевым, если сделать это nullable int следующим образом:

public int? age; 
2

Просто укажите номер ss в конструкторе. По умолчанию все остальные ссылочные типы будут пустыми. Ошибки возникают из-за того, что типы значений, такие как double и int, не могут быть нулевыми.

+0

, поэтому мне не нужно вводить все остальные значения в конструкторе? – user2669196

+0

Это зависит от потребностей вашего бизнеса. – Oscar

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; 
     } 
    } 
} 
+1

Вместо того, чтобы использовать кучу 'if', почему бы не использовать ['GetValueOrDefault'] (http://msdn.microsoft.com/en-us/library/72cec0e0.aspx)? – icktoofay

Смежные вопросы