Avatar billede promt Nybegynder
20. januar 2005 - 17:27 Der er 10 kommentarer og
1 løsning

Nedarvning fra flere klasser

Hej Eksperter i C#,
jeg har brug for at nedarve fra to klasser, men jeg er ikke klar over hvordan, de to klasser jeg skal nedarve fra er:

System.Web.UI.UserControl &  System.Web.UI.Page

Problemet er at jeg skal bruge et komponent fra  System.Web.UI.Page som jeg ikke kan tilgå via UserControl hvor koden ligger.

Er der nogle der har en god løsning i aften, så er det point's ude og svømme!
Avatar billede promt Nybegynder
20. januar 2005 - 18:22 #1
Lukker har løst det - ved brug af en instans af en klasse
Avatar billede burningice Nybegynder
20. januar 2005 - 18:24 #2
Du kan ikke arve fra flere klasser... asta basta bum

Det lyder meget som om at du har brug for at få fat i den Context (session, page, response, request osv.) din usercontrol kører i? Har jeg ret?

I så fald kan det gøres ved hjælp af den statiske Current-propertien i Context-klassen:

Context c = System.Web.Context.Current;
c.Response.Write("hej med dig");
Avatar billede ladyhawke Novice
21. januar 2005 - 08:20 #3
giver cyberfessor ret, der er IKKE multibel arv i C# - og jævnfør en af arkitekterne (Anders Hejlsberg), så er det ikke noget man ønsker at implementere.
Avatar billede jimgordon Nybegynder
23. januar 2005 - 15:10 #4
Der er multipel nedarvning fra flere interfaces på engang.
Det er et fint alternativ til klasser.
Avatar billede burningice Nybegynder
23. januar 2005 - 15:25 #5
ikke hvis det er funktionalitet man ønsker at arve. Interfaces indeholder jo ikke funktionalitet, men kun selve skelettet for en klasse.
Avatar billede segato Nybegynder
23. januar 2005 - 23:48 #6
Ellers kan man jo nedarve fra en klasse der nedarver fra en klasse:D Ikke pænt men kan give samme resulatat!
Avatar billede burningice Nybegynder
23. januar 2005 - 23:57 #7
ja... men nu kan man jo ikke ligefrem ændre i allerede eksisterende klasser.
Avatar billede burningice Nybegynder
23. januar 2005 - 23:57 #8
er det forresten muligt at få at vide hvilken funktionalitet det var du manglede?
Avatar billede jimgordon Nybegynder
24. januar 2005 - 14:44 #9
Man kan også bruge en instans af en klasse istedet for at nedarve fra den. Det kaldes delegation istedet for arv. Arv er til tider en slem ting, da den bryder ens indpakningen og gør designet statisk. Mange udviklerer anbefaler fortrinsvis at bruge delegation fremfor arv.
Avatar billede jimgordon Nybegynder
24. januar 2005 - 14:54 #10
Du kan foreksempel lave et facade pattern (læs klasse), hvor du anvender eller parrer de to klasser du skal arve fra i en ny klasse. Så får du en ny klasse, der indpakker de to andre klasser. Når du så laver en instans af den nye klasse har du adgang til data fra to de bagved liggende klasser på engang. Dvs. du tilgår de to klasser fra en klient igennem et facade objekt. Der var en diskussion på http://www.eksperten.dk/spm/583470?Esession=94b7609608b6d6caf7240c4179eecf7f

Hov så ikke du have svaret selv, sårn er det når man ser alle spørgsmål uden at filtrere de besvaret fra... Men lade det jeg skrev stå alligevel.
Avatar billede promt Nybegynder
24. januar 2005 - 14:56 #11
Tak jimgordon, som du ka se så har jeg selv benyttet en instans af en klasse :O)

Men tak for jeres bud alligevel!
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