vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Delegate - bitte um Info 
Autor: VBStein
Datum: 25.10.08 21:06

Hai,

Dieser Satz hier:

Bei der Delegation verwendet eine Klasse die Dienste von Objekten, von denen sie nicht abgeleitet ist,

ist Bullshit. Objekte haben Methoden, Eigenschaften und Events, aber keine Dienste.

Die explizite Übertragung der Aufgaben per Delegate macht den Code verständlicher. Sinn macht dies zum Beispiel, wenn identische Funktionalität in verschiedenen Klassen benötigt wird, die nicht in einer gemeinsamen Vererbungslinie stehen.

*LoL* ... so schwätzen sie, die .NET Multiplizierer.

hmmm... eigentlich geht es genau um TypeCasting. Ich muss etwas formen, was anstatt (Delegate) von bisherigem in dieser Klasse getan wird.

Was passiert konkret bei Delegates:

Ein Delegate ist mal ein Object, sprich: eine instanzierte Klasse -> beliebige Klasse, nur muss sie nachher als Delegate in den Konsenz passen! Was Text aufnimmt muss eine Methode Text haben, sonst geht es nicht.

Beispiel: Du hast ein Grid entworfen und darin sind die einzelnen Zellen: Statik-controls - sie zeigen nur was an, aber kein editieren möglich. Nehmen wir weiter an, dass diese Klasse Grid Statik-Controls als Klassen verwendet um dann diesen ViewPort so anzuzeigen.

Lasse dich von ViewPort ja nicht aus der Ruhe bringen ;) Das meint: Momentan sichtbare Oberfläche.

Jetzt wird es plötzlich Delegate!

Dieses statische Control (ein Label) wird plötzlich zu einem Edit-Control, was dem User nun auf einemal die Eingabe von Text erlaubt.

Heilix Blechle! Eben noch ignoriert das Ding die Tastatur, jetzt geht es auf einemal ...

Das erleben User weltweit, wenn sie einer Listview mit Edit-Eigenschafte in die zeile klicken oder ganz konkret: Wenn sie doppelt in eine Excel-Zelle klicken, dann wird ein Delegate eingeschoben: Aus Static wird plötzlich Edit. Das macht: Delegates sind nicht eine Erfindung der .NET-Welt, sondern ein längst bekanntes Verfahren bei der Entwicklung. Nur M$ meint das nun Kinderleicht umgesetzt haben zu wollen.

TypeCasting von einem Label-Control in ein Edit-Control; SWAP!

Das Edit-Control ist in dieser Rolle der Delegate, der ein Static-Control vertritt und aber seine
erweiterten Methoden zur Verfügung stellt.

Das Konzept davon, und davon ist in .NET ausführlichst dann die Rede, ist die fantastische Welt der Delegates ... gähn ... . Gut daran ist: M$ hat sein Klassenmodel natürlich genau darauf abgestimmt, WAS! alles delegate sein darf und was nicht.

ooP-Normal wäre: Was identische Schnittstellen hat, um bestimmte Funktionalität vom bisherigen Control mit übernehmen zu können, um sich dann daran einzuhängen und das Verhalten von bisherigen Klassen an dieser Stelle zu erweitern.

PS.: -> Ja, das ist QT

Beitrag wurde zuletzt am 25.10.08 um 21:33:26 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Delegate - bitte um Info1.026mrterraluna24.10.08 20:07
Re: Delegate - bitte um Info760Dirk24.10.08 21:36
Re: Delegate - bitte um Info693mrterraluna24.10.08 22:09
Re: Delegate - bitte um Info708mrterraluna24.10.08 22:22
Re: Delegate - bitte um Info664VBStein25.10.08 21:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel