Свойство не изменяет значение, переданное конструктором в ходе создания экземпляра класса - C#
Формулировка задачи:
Создаем класс Person, в нем есть свойство - пол(sex), когда я создаю экземпляр класса, и передю ему значения этого свойства, то остальные свойства(LastName, FirstName) должны задать соответственные имена, в зависимости от пренадлежности к полу человека. Не понимаю почему так.
Листинг программы
- internal class People
- {
- string _firstName;
- string _lastName;
- int _age;
- string _sex;
- internal string Sex
- {
- get { return _sex; }
- set
- {
- if (((value.Trim()).ToLower() == "man") || ((value.Trim()).ToLower() == "woman")) _sex = value;
- else
- {
- _sex = "man";
- Console.WriteLine("Value = Man is added, because string value is fail");
- }
- }
- }
- internal string FirstName
- {
- get{return _firstName;}
- set
- {
- if (value == null) // если передем null то устанавливастя соотв значения имен
- {
- if (Sex == "man") _firstName = "Emanuel";
- if (Sex == "woman") _firstName = "Angelina";
- }
- else
- {
- _firstName = value;
- }
- }
- }
- internal string LastName
- {
- get { return _lastName; }
- set
- {
- if (value == null) // тоже что и с именем
- {
- if (Sex == "man") _lastName = "Newton";
- if (Sex == "woman") _lastName = "Parker";
- }
- else
- {
- _lastName = value;
- }
- }
- }
- internal int Age
- {
- get { return _age; }
- set
- {
- if (value > 0) _age = value;
- else
- {
- _age = 1;
- }
- }
- }
- public People() : this("Man", "Antony", "Chikken", 23) { }
- public People(string Sex) : this(Sex, null, null, 23) { } // передаю соответсвенные значение null, но не задает имена, которые стоят при условии в свойствах.
- public People(int Age) : this("Man","Howard", "Chikken", Age) { }
- public People(string Sex, string FirstName, string LastName, int Age)
- {
- this.Sex = Sex; this.FirstName = FirstName; this.LastName = LastName; this.Age = Age;
- }
- public override string ToString()
- {
- return string.Format("Sex is {0}, FirstName is {1}, LastName is {2}, Age is {3}", Sex, FirstName, LastName, Age);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- People p = new People("woman ");
- Console.WriteLine(p.ToString());
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Свойство не изменяет значение, переданное конструктором в ходе создания экземпляра класса»
textual
Листинг программы
- static void Main(string[] args)
- {
- People p = new People("woman");
- Console.WriteLine(p.ToString());
- Console.ReadKey();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д