Свойство не изменяет значение, переданное конструктором в ходе создания экземпляра класса - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д