Forum: PC-Programmierung C# Funktion anderer Klasse aus Eventhandler afrufen


von Rahul D. (rahul)


Lesenswert?

Moin,
ich habe folgendes Konstrukt:
In einer Klasse wird von einem Timer beim Überlauf ein Eventhandler 
("private static void") aufgerufen.
Der soll wiederum eine Funktion ("private void") einer anderen Klasse 
per Delegate ("public...") aufrufen.

Jetzt meckert der Compiler natürlich rum ("Objektverweis erforderlich"), 
weil ich irgendwas dynamisches aus einer statischen Funktion heraus 
aufrufen will.
Beides einzeln funktioniert (innerhalb der jeweiligen Klasse/Instanz).
Auch die Datenübertragung in beide Richtungen per Event läuft 
einwandfrei.
Nur eben nicht dieser "Ping".

Wie könnte ich das jetzt zum Laufen bringen?

Vielen Dank schon mal.

von John D. (john_d801)


Lesenswert?

Hallo,

versuche doch mal ein Beispiel zusammenzustellen.
Unter dem Prosa kann sich keiner was vorstellen (gut, ich 
verallgemeinere gerade)

Grüße,

von Rahul D. (rahul)


Lesenswert?

John D. schrieb:
> Unter dem Prosa kann sich keiner was vorstellen

Was ist an den beiden (relevanten) Sätzen schwer zu verstehen?
Eine Klasse/-Instanz soll mit einer anderen kommunizieren ("Ping").

Der Ping wird von einem Timer-Eventhandler erzeugt und soll in einer 
anderen Klasse/-Instanz einen Control.Button wieder freigeben.

Das hapert aber an den Zugriffsmodifizierern.

Edit:
Hat sich erledigt.
Man kann einfach nicht von statischen Membern auf nicht statische 
zugreifen.
Man kann aber die Event-Zuweisung in den nicht statischen, privaten 
Konstruktor verlegen ("Singleton-Klasse"), wodurch der ganze Spaß dann 
doch funktioniert.

: Bearbeitet durch User
von John D. (john_d801)


Lesenswert?

Na herzlichen Glückwunsch zum Lösen deines Problemes.

Du hast leider nur beschrieben, was du machen willst und nicht, wie du 
es gemacht hast.

Wie soll denn da ein anderer bei deinem Fehler helfen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.