Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Dieses Delphi-Event in C#?

  Alt 4. Aug 2006, 10:10
Hallo,
Zitat von Pseudemys Nelsoni:
mal abgesehen davon, dass ich nicht verstehe was delegaten in C# sind, bzw was sie mit Events zu tun haben, geb ich hier einfach mal ein Code-Beispiel von Delphi, dass ich gerne in C# hätte: ...
Das Problem hatte ich auch (ich bin ebenfalls von Delphi 5 auf Delphi 2005 und jetzt auf C# umgestiegen). Du musst Dich in der Tat dringend mit Delegates beschäftigen, weil sie auch anstelle der Methoden-Pointer von Delphi verwendet werden.

Mir hat dabei folgende Lektüre geholfen:
Zitat:
Walter Doberenz, Thomas Gewinnus: Borland Delphi 2005 - Grundlagen, Profiwissen, Kochbuch. Hanser-Verlag 2005, ISBN 3-446-40202-0
Dieses Kochbuch hat m.E. eine erheblich bessere Qualität als die vorherigen Ausgaben und bezieht sich auf NET-Entwicklung mit Delphi. Kapitel 14.1 "Das Microsoft Event Pattern" erläutert den Zusammenhang zwischen Delegates und Events.

Zitat von Khabarakh:
Na dann würde ich an deiner Stelle unbedingt mal "delegates" im Suchindex des SDKs eingeben.
Naja, das SDK hilft für die Praxis gerade dann oft wenig, wenn man grundlegende Erläuterungen sucht.

Zu den vorgeschlagenen Codes: Diese sind im Prinzip OK, entsprechen aber nicht den MS-Vorschlägen, nach denen Delegates immer mit EventArgs verbunden werden sollen:

Zitat von Khabarakh:
Code:
public delegate void DoSomethingDelegate(int i1, int i2);
   // oder auch (Object sender, DoSomethingEventArgs e)
    // wäre für Komponenten konformer, aber mehr Schreibaufwand ;)
Arbeitsanleitung
Aus Doberenz/Gewinnus (Kochbuch Delphi 2005), einem C#-Lehrbuch und NET-Doku habe ich ein
Verfahren zusammengestellt, das ich als Anlage beigefügt habe.

Viel Erfolg! Jürgen
Angehängte Dateien
Dateityp: txt anleitung_delegates_375.txt (3,5 KB, 20x aufgerufen)
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat