|
|
|
Was ist an ByRef auszusetzten wenn du den Typen verändern willst. Ansonsten nimmst du ByVal.
– Floyd 09.03.2011
|
public class MeineEventArgs : EventArgs {
public MeineEventArgs(InfoTyp info) {
InfoTyp = info;
}
public InfoTyp { get; }
}
// Hier das Event
public event EventHandler<MeineEventArgs> Foo;
// Hier der Event Auslöser
if (Foo != null) {
var eventArgs = new MeineEventArgs(info);
Foo(this, eventArgs);
if (info.Irgendwas == "bar") {
// tu was
}
}
// Später im Code nachfolgender EventHandler
meinObjekt.Foo += (sender, e) => { e.InfoTyp.Irgendwas = "bar" };|
|
System.EventArgserbt:
public class MeineEventArgs : EventArgs
{
private string _info = String.Empty;
public MeineEventArgs(string info)
{
_info = info;
}
public string Info
{
get { return _info; }
set { _info = value; }
}
}
public delegate void MeinEventEventHandler(object sender, MeineEventArgs e);
public class EventTest
{
// Die Eventdeklaration
public event MeinEventEventHandler MeinEvent;
// Eine Methode, die das Event auslöst.
public void Foo()
{
OnMeinEvent("Irgendwer muss was machen!");
}
// Eine private Methode zum Auslösen des Events. Vorher prüfen, ob auch
// ein Empfänger an dem Event angemeldet ist.
private void OnMeinEvent(string info)
{
if(MeinEvent != null)
MeinEvent(this, new MeineEventArgs(info));
}
}
class Program
{
static void Main(string[] args)
{
EventTest test = new EventTest();
test.MeinEvent += new MeinEventEventHandler(test_MeinEvent);
}
static void test_MeinEvent(object sender, MeineEventArgs e)
{
// Hier das Event abhandeln.
}
}
|
|
|
|
|
|
|
Würde ich gerne, habe aber leider noch nicht verstanden wie das geht. Habe beim Stellen der Frage dummerweise nicht gesehen, dass ich nicht mit meinen Account eingelogt war. Weiter scheint mir noch die Berechtigung zum Bewerten zu fehlen. Werde die Bewertung sobald wie möglich nachholen.
– Andreas Schädler 10.03.2011
|
||
|
Vielen Dank Marvin. Kann ich nur eine Bewerten? Kann ja aus allen etwas nehmen.
– Andreas Schädler 10.03.2011
|
||
|
Du kannst (und solltest!) alle bewerten, aber die beste akzeptieren. Die beste Antwort erscheint dann ganz oben.
– Marvin Steppat 10.03.2011
|
||
|
|
|
Magst Du dafür nicht lieber eine eigene Frage aufmachen? Sonst wird es zu unübersichtlich hier. Außerdem könnte das Deine Chancen erhöhen, eine Antwort zu bekommen. Und vielleicht stehe ich gerade auf der Leitung - aber was sind für Dich "generic events"?
– Matthias Hlawatsch 11.03.2011
|