Свойство не изменяет значение, переданное конструктором в ходе создания экземпляра класса - 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();
}