Avatar billede czix Nybegynder
12. april 2008 - 10:06 Der er 1 kommentar og
1 løsning

Delegates og Events med klasser?

Hej,

i forbindelse med et projekt, jeg er igang med, skal der bruges delegates og events til sammenkobling af klasserne.

Vi forestiller om, at vi har to klasser ved navn, Person og Bil. De skal kommunikere mellem hinanden med events. Lad os sige, at Person får et hjul, som automatisk skal føres over på Bil, når det forekommer. Hvordan implementeres dette?
Avatar billede kalp Novice
12. april 2008 - 10:45 #1
nu skal man ikke tænke over designet i klasserne.. det skal laves om:)
men du kan i det mindste se hvordan det fungerer.
Du skal lave disse 3 klasser og køre fra Program.cs

namespace DelegateEvents
{
    class Person
    {
        private Bil bil;
        public delegate int? DaekDelegate(int? deak);
        private Delegate bilDaek;
        public Person() {
            bil = new Bil();
            bilDaek = new DaekDelegate(bil.Daek);
        }

        public int? KoebDaek(int? antalDaek)
        {
            bilDaek.DynamicInvoke(antalDaek);
            return bil.Daek(null);
        }
    }
}


namespace DelegateEvents
{
    class Bil
    {
        private int daek = 0;
        public Bil() { }

        public int? Daek(int? daekp)
        {
            if (daekp == null) return daek;
            daek += (int)daekp;
            Console.WriteLine(string.Format("{0} dæk er sat på bilen", daekp));
            return daek;
        }
    }
}


namespace DelegateEvents
{
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();
            person.KoebDaek(1);
            person.KoebDaek(1);
            person.KoebDaek(1);
            person.KoebDaek(1);
            Console.WriteLine("Bilen har nu {0} dæk ", person.KoebDaek(null));
            Console.Read();
        }
    }
}
Avatar billede kalp Novice
12. april 2008 - 10:45 #2
det er primært bilen som ikke bør oprettes i Person's konstruktør.
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