Avatar billede Madsgadeberg Nybegynder
24. februar 2013 - 21:08 Der er 2 kommentarer og
1 løsning

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
Avatar billede arne_v Ekspert
24. februar 2013 - 21:14 #1
Person anne = new Person("Anne", new DateTime(1988, 01, 01));

??
Avatar billede Madsgadeberg Nybegynder
24. februar 2013 - 21:19 #2
Hold nu kæft jeg har brugt lang tid på det Arne! Nogle gange kan man ikke se skoven for bare træer.

Takker mange gange! smider du lige et svar?
Avatar billede arne_v Ekspert
24. februar 2013 - 21:23 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester