Laden...

Interfaces, Delegates

Erstellt von Cpt_Future vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.949 Views
C
Cpt_Future Themenstarter:in
97 Beiträge seit 2005
vor 18 Jahren
Interfaces, Delegates

Hallo,

ich lese gerade im Buch Programmieren mit C# den Artikel Delegates. Ich frage mich gerade aber, was der Unterschied zwischen Interfaces, Abstrakten Klassen und Delegates ist.

Es wird hier das Beispiel Pair(object one, object two) genommen, das deren Objekte sortieren kann. Sortieren tuen dann aber die übergebenen Objekte selbst (Student (nach Name) und Dog (nach Gewicht)). Wozu das? Mit Interfaces kann ich doch einfach vorgeben, dass sie Sortable sind z.B...
Kann jemand vielleicht ein sinnvolles, praxisbezogenes Beispiel für Delegates geben?

Danke im Voraus 🙂

Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf

S
8.746 Beiträge seit 2005
vor 18 Jahren

Interface oder abstrakte Klassen geben vor wie abgeleitete Klassen beschaffen sein müssen.

Delegaten sind "Methodenvariablen", d.h. man kann eine Methode wie eine normale Variable als Parameter in ein andere Methode stopfen. In anderen Sprachen heisst sowas "Callback" (Rückrufmethode).

1.985 Beiträge seit 2004
vor 18 Jahren

Hallo Cpt_Future,

ich kann Dir zwar leider nicht auf Deine Frage antworten, mich würde aber interessieren, wie Du das Buch findest, da ich da auch schon mal ein Auge drauf geworfen habe.
Kannst Du es empfehlen?

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

C
Cpt_Future Themenstarter:in
97 Beiträge seit 2005
vor 18 Jahren

Original von Fabian
ich kann Dir zwar leider nicht auf Deine Frage antworten, mich würde aber interessieren, wie Du das Buch findest, da ich da auch schon mal ein Auge drauf geworfen habe.
Kannst Du es empfehlen?

Ich weiß jetzt nicht wie deine Vorkenntnisse sind. Ich kann PHP gut bis sehr gut, habe 2 Jahre lang damit programmiert. Sonst kann ich allerdings keine Sprache.

Im Prinzip finde ich es gut, Jesse Liberty eben. Solide gute Beschreibungen. Der Abschnitt Threads hat mir gut weitergeholfen, aber die Erklärungen zu "Delegates" verstehe ich eben nicht, was schade ist, da es gerade etwas ist, wozu es bei PHP kein Gegenstück gibt.

Andererseits habe ich einen Großteil meiner sehr bescheidenen C#-Kenntnisse auch mehr übers Learning-By-Doing erworben und über die Funktionsvorschau & Hilfe des VS2003/MSDN.

D.h. ich kann dir keine Empfehlungen über die hinteren Kapitel geben, aber die scheinen doch auch sehr weitgefächert und vielversprechend zu sein.

Ich denke bei Jesse Liberty kannst du eigentlich nicht viel falsch machen.

Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cpt_Future,

Kann jemand vielleicht ein sinnvolles, praxisbezogenes Beispiel für Delegates geben?

wenn man Vererbung verwendet oder Interfaces implementiert, kommt man bei selbstgeschriebenen Klasse immer ohne Delegaten aus. Aber mit Delegaten kann man eben oft unnötige Vererbung oder unnötige Interfaces vermeiden.

Delegaten werden als EventHandler vor allem bei der Windows-Forms-Programmierung verwendet. Beispiel wäre die Reaktion auf den Klick auf einen Button.

Außerdem werden Delegaten z.B. beim Starten von Threads und bei Control.BeginInvoke verwendet.

Hallo Fabian,

Ich denke bei Jesse Liberty kannst du eigentlich nicht viel falsch machen.

Und bei O'Reilly eigentlich auch nicht 🙂

herbivore

1.985 Beiträge seit 2004
vor 18 Jahren

Hallo Fabian,

Ich denke bei Jesse Liberty kannst du eigentlich nicht viel falsch machen.
Und bei O'Reilly eigentlich auch nicht 🙂

herbivore

Hallo,

Jesse Liberty kenn ich bis jetzt. Zumindest fällt mir grad nichts ein, was ich mal gelesen haben könnte.

Aber mit O'Reilly kann man normalerweise wirklich nichts falsch machen. Habe ich bis jetzt sehr gute Erfahrungen mit gemacht.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

C
Cpt_Future Themenstarter:in
97 Beiträge seit 2005
vor 18 Jahren

Original von Fabian
Jesse Liberty kenn ich bis jetzt. Zumindest fällt mir grad nichts ein, was ich mal gelesen haben könnte.

?( 8o ?( 🙂

Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf

1.985 Beiträge seit 2004
vor 18 Jahren

Original von Cpt_Future

Original von Fabian
Jesse Liberty kenn ich bis jetzt. Zumindest fällt mir grad nichts ein, was ich mal gelesen haben könnte.

?( 8o ?( 🙂

Hallo 🙂,

beziehen sich die Smilies auf die Tatsache, dass ich bis jetzt noch nichts gelesen habe oder das ich ihn nicht kenne 🙂?

Mir fällt da auch auf, dass da im ersten Satz ein nicht fehlt hust 🙂.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

C
Cpt_Future Themenstarter:in
97 Beiträge seit 2005
vor 18 Jahren

Original von Fabian
Mir fällt da auch auf, dass da im ersten Satz ein nicht fehlt hust 🙂.

Das meinte ich 🙂
Wie gesagt, Buch ist schon zu empfehlen 👍

Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf