Frage von Kyrili, 149

C# keine überladung stimmt mit dem Deleganten überein Fehler?

Ich soll in C# einen Rechner erstellen der aus mehreren Zahlen ( im array) einen Mittelwert erstellt und kann meinen Fehler einfach nicht finden, vielleicht könnt ihr mir ja helfen.

MFG Bolle

Antwort
von Omnivore08, 49

dein btn_mittelwert_click ist eine Methode, die aus einem Ereignis (Event) "gefeuert" wird! Diese ist immer an einen sogenannten Handler verbunden. Handler sind Delegates. Die Events sind in der Klasse Button hinterlegt.

Ich weiß jetzt nicht den Handler auswendig, müsste ich nachschauen, aber im Prinzip steht in dieser Klasse etwas wie

public delegate void ChangedEventHandler(object sender, EventArgs e);

// und dann in der Button-Klasse
public event ChangedEventHandler Click;

Ich übersetze dir das nochmal auf Deutsch: In der Klasse Button ist ein Event hinterlegt, welches den ChangedEventHandler als Delagaten nutzt. D.h. JEDE Methode, die auf diesen Ereignis reagieren soll muss eine void von diesem Typ sein. Also Parameter object sender und EventArgs e

Das kannst du nicht verändern oder nur schwer, und selbst wenn ist das nicht zu empfehlen! Daher auch die Fehlermeldung! Und es ist auch logisch, dass er dich zu Bild 2 führt. Denn da hat die IDE dir den Kode erzeugt! Man kann das auch per Hand machen. In dieser Zeile steht eben, dass die Methode btn_mittelwert_click in die Event-Feuerliste mit aufgenommen werden soll. Diese Methode feuert er also, wenn das Ereignis anschlägt. Das Problem dabei ist. Diese Methode erwartet als Event einen Delegaten vom Typ 'ChangedEventHandler'. Diese lieferst du ihm aber nicht! Du hast den Kopf verändert!

Warum fragst du die Daten nicht einfach Klassenintern ab? Ist doch ganz einfach. this.werte und du hast sie.

Ich hoffe ich konnte dir helfen!

Gruß
Omni

PS: Bitte nicht sowas wie private object werte und so machen...das ist ein ganz schlechter Programmierstil!

PPS: Du bist mal einer der wenigen, die endlich mal eine anständige Frage stellen konnten, wo man Programmiersprache, Quellkode und dein Problem super entziffern kann. Bei anderen macht man teilweise dabei Rätselraten! Dafür ein Lob! :-)


Kommentar von Kyrili ,

Danke für deine ausführliche Hilfe, das Problem wurde mittlerweile schon gelöst :)

Keine passende Antwort gefunden?

Fragen Sie die Community