Avatar billede fastpoint Nybegynder
12. juni 2006 - 16:50 Der er 11 kommentarer og
2 løsninger

forskellige små spørgsmål

Det er korte spørgsmål jeg lige må have afklaret.

1. Denne syntax ser jeg tit, men forstår den ikke. {0}
Det er ofte i Console.WriteLine kaldet, men hvad betyder det egentlig?

2. Den eneste forskel på Events og Delegates er det, at man ikke kan kalde Events fra andre klasser end hvor den er lavet? Det lyder i hvertfald sådan i den bog, som jeg læser.

3. Hvad betyder det når en klasse er sealed?

4. I c# kan man programmere asynkront via.  Threads og delegates så i Java kan man kun gøre det via. Threads?

Håber på svar:)
Avatar billede arne_v Ekspert
12. juni 2006 - 17:16 #1
re 1)

at det foerste efterfoelgend eragument skal saettes ind der

re 3)

at man ikke kan arve fra den

re 4)

korrekt - java har ikke delegates
Avatar billede fastpoint Nybegynder
12. juni 2006 - 19:46 #2
giver spørgsmål 2 ikke mening eller kender du ikke svaret?
Avatar billede arne_v Ekspert
12. juni 2006 - 19:57 #3
jeg er ikke skrap nok udi events og delegates til at jeg toer komme med
et autoritativt svar paa det spoergsmaal

(man skal kende sine begraensninger)
Avatar billede fastpoint Nybegynder
12. juni 2006 - 20:20 #4
det er i orden, men måske ved du hvad der menes med, at delegates kun kan pege på instance metoder og static metoder?
Det er instance metoder som jeg er usikker på. Mener de metoder, som ligger i et objekt som skal instancieres? altså det må ikke være null, som det godt kan være med static metoder?
Avatar billede arne_v Ekspert
12. juni 2006 - 20:37 #5
instance metoder er metoder uden static keyword

og de skal syntaktisk kaldes paa et objekt og ikke paa en klasse

og hvis objekt referencen er null saa faar du en null pointer exception
Avatar billede lateralus Nybegynder
13. juni 2006 - 09:28 #6
re 2) En anden forskel er at events kan tilføjes til et interface - det kan en delegate ikke. Derudover har man mulighed for at overskrive Add() og Remove() metoderne på event, hvis man har de lyster.
Avatar billede segato Nybegynder
13. juni 2006 - 14:44 #7
Delegate er blot en pointer til en funktion som vi kender det fra c++. Event er blot kaldet til funktionen. Så du kan ikke sætte punkt to op på den måde da de to ting hænger sammen. Man oprettet et event ud fra en delegate.
Avatar billede md_craig Nybegynder
14. juni 2006 - 12:37 #8
Som segato siger er en Delegate en pointer og eventet er kaldet...

når du skriver:
        public delegate void MyDelegate(object sender, MyEventArgs args);

Så definere du bare signaturen for den/de metoder din givne delegate kan pege på.
Denne signatur kan naturligvis være på mange måde, overstående er bare ret gennerelt for events, men kunne godt have været:
        public delegate void MyDelegate(int alder, string navn);

Osv...
Når du så opretter dit event ud fra din delegate, følger signaturen self med

et event er i sagens natur faktisk bare en samling af delegates (pointers)...
og når du så laver et kald med dit event, sørger den for at gå hele sin samling igennem og kalde de metoder, på det objecter som dens delegates peger på...

Ok blev vist lidt kringlet... men håber da det giver lidt mening...
Avatar billede pfp Nybegynder
15. juni 2006 - 16:36 #9
Jeg har samme opfattelse som md craig..

"et event er i sagens natur faktisk bare en samling af delegates (pointers)..." Jeg vil tro, at det også er derfor man kalder et event for et multicast delegate.
Avatar billede arne_v Ekspert
09. juli 2006 - 03:25 #10
tid at få afsluttet her ?

og et svar fra mig for 1+3+4
Avatar billede fastpoint Nybegynder
06. december 2006 - 10:26 #11
yep.
nogle er de øvrige deltagere som vil ligge et svar for det sidste spørgsmål?
Avatar billede segato Nybegynder
06. december 2006 - 11:34 #12
svar
Avatar billede segato Nybegynder
06. december 2006 - 11:35 #13
svar :D
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