DateTime og constructor chaining
Hej. Jeg har et problem med at angive en default værdi til min instansvariabel af typen DateTime.her er et udpluk af koden.
static void Main(string[] args)
{
DateTime birthday = new DateTime(1988, 01, 01);
Person mads = new Person("Mads");
Person anne = new Person("Anne", (1988, 01, 01));
Person karen = new Person("Karen", birthday, 80);
Person mikkel = new Person("Mikkel", birthday, 80, 180);
}
I kan se der hvor jeg erklærer mit objekt "anne", prøver jeg at angive hendes fødselsdag i formatet for DateTime, men uanset hvad jeg gør, kan jeg ikke angive den på andre måder, end at oprette objektet birthday og indsætte det.
igen i min constructor chaining kan jeg ikke erstatte objektet birthday med det samme. i kan se på linje 80: vil jeg gerne erstatte birthday med (1990, 01, 01) men det kan jeg ikke.
class Person
{
public enum Gender
{
male, female
}
private string name;
private DateTime birthday;
private int weight;
private double height;
private int Bmi;
private int Age;
//int Gender;
//public bool Maried;
79: public Person(string name)
80: : this(name, birthday, 65, 1.85)
81: { }
public Person(string name, DateTime birthday)
: this(name, birthday, 65, 1.85)
{ }
public Person(string name, DateTime birthday, int weight)
: this(name, birthday, weight, 1.85)
{ }
public Person(string name, DateTime birthday, int weight, double height)
{
this.name = name;
this.birthday = birthday;
this.weight = weight;
this.height = height;
// vægt/højde(m)^2
this.Bmi = weight / ((int)Math.Pow(height, 2));
DateTime today = DateTime.Today;
this.Age = today.Year - birthday.Year;
}
}
Håber i har nogle gode forslag.
Mvh Mads G. Jensen