Hallo zusammen,
ich habe folgendes Problem:
In einer selbst erstellen Klasse A verwende ich eine weitere selbsterstellte Klasse B, Nun möchte ich die von der Klasse B zur Verfügung gestellten Events über die Klasse A nach außen hin zur Verfügung stellen, ohne das die Klasse A von der Klasse B abgeleitet wird. Ist dieses möglich, ohne eine händische Nachbildung der Events in der Klasse A?
Gruß
Du könntest B als Property von A nach außen hin sichtbar machen. Man registriert sich dann nicht bei A sondern bei A.B.
Aber es gibt meines Wissens nichts womit man sowas durchschleifen kann, ohne es auszuprogrammieren.
Kannst du die Events von B nach A verlagern?
Hallo,
leide kann ich die Events nicht von B nach A verlagern, da die Funktion der Klasse A in der Hauptsache eine andere ist und ich bei der Ausführung in einer der Methoden auf die Klasse B wegen einer benötigten Funktion zugreife.
Hallo DerPapenberg,
suchst du vielleicht sowas:
internal class Helper
{
public event EventDelegate MyEvent;
}
public class MainClass
{
private Helper _helper;
public event EventDelegate MyEvent
{
add { _helper.MyEvent += value; }
remove { _helper.MyEvent -= value; }
}
}
Mfg NeuroCoder
Hallo zusammen,
wir müssen das eigentlich nicht immer und immer wieder durchsprechen.
Der Vorschlag von NeuroCoder verbietet sich nicht nur, weil dann über den sender-Parameter die internen Objekte nach außen bekannt werden, sondern schon alleine, dadurch weil dadurch überhaupt ein falscher unpassender sender übermittelt wird.
Das einzig sinnvolle ist, die Events der inneren Klasse zu fangen und dann ein eigenes Event der äußeren Klasse zu feuern.
Das wurde wie gesagt im Forum schon oft genug besprochen. Siehe z.B. best practise: Event einer aggregierten Klasse weiterleiten.
herbivore