Gå til indholdet

N205 Simpel klasse (Person)

Du skal skabe en tom konsol app med en klasse Person med følgende medlemmer:

  • Et offentlig string felt kaldet Fornavn
  • Et offentlig string felt kaldet Efternavn
  • Et offentlig int felt kaldet Fødselsår
  • En offentlig metode FuldtNavn() som returnerer Fornavn + ” ” + Efternavn
  • En offentlig metode Alder() der beregner en estimeret alder ud fra fødselsår
  • En default constructor som sætter Fornavn og Efternavn til ””
  • En custom constructor som initialiserer alle felter

Brug klassen i Main ved at skabe en 2-3 objekter med new og test at metoderne virker.

Ekstra: Serialisering

Prøv at serialisere og deserialisere til JSON med System.Text.Json.JsonSerializer.Serialize og System.Text.Json.JsonSerializer.Deserialize - se løsning.

Klik for at se et forslag til en løsning
using System;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;

namespace MinApp
{
    class Program
    {
        static void Main(string[] args)
        {

            Person p1 = new Person();
            p1.Efternavn = "cronberg";
            p1.Fornavn = "mathias";
            p1.Fødselsår = 2006;
            Console.WriteLine(p1.FuldtNavn());
            Console.WriteLine(p1.EstimeretAlder());


            Person p2 = new Person("mikkel", "cronberg", 2006);
            Console.WriteLine(p2.FuldtNavn());
            Console.WriteLine(p2.EstimeretAlder());

            // Ekstra 
            // Til string
            // Medtag felter og sørg for at ØÆÅ håndteres korrekt i JSON
            var options = new JsonSerializerOptions { IncludeFields = true, Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Latin1Supplement) };

            // Serialisering
            string json = System.Text.Json.JsonSerializer.Serialize(p2, options);
            Console.WriteLine(json);

            // Fra string
            Person p3 = System.Text.Json.JsonSerializer.Deserialize<Person>(json, options);
        }
    }

    class Person
    {
        public string Fornavn;
        public string Efternavn;
        public int Fødselsår;

        public string FuldtNavn()
        {
            return $"{Fornavn} {Efternavn}";
        }

        public int EstimeretAlder()
        {
            int år = DateTime.Now.Year;
            return år - this.Fødselsår;
        }

        // default constructor
        public Person()
        {
            this.Fornavn = "";
            this.Efternavn = "";
        }

        // Custom constructor
        public Person(string fornavn, string efternavn, int fødselsår)
        {
            this.Fødselsår = fødselsår;
            this.Fornavn = fornavn;
            this.Efternavn = efternavn;
        }
    }
}