anonyme Delegaten löschen

29/11/2008 - 19:33 von Carsten Ilwig | Report spam
Hi Leute,

wie löscht man Zuweisungen von anonymen delegaten?
Geht das überhaupt?

Beispiel:

public class MyClass
{
public delegate void OnMyEventHandler(string _workString);
public static event OnMyEventHandler OnMyEvent;
}

public MyMethode()
{
MyClass.OnMyEvent += delegate(string _workString)
{
//tue irgendetwas...
};
}

Wie kann ich jetzt den OnMyEvent zugewiesnen anonymen delegaten wieder
löschen
damit mir er beim nàchsten Aufruf nicht erneut hinzugefügt wird?
Bzw. wie kann ich prüfen, ob OnMyEvent bereits dieser Delegate zugewiesen
wurde?

Vielen Dank für Eure Hilfe
Carsten
 

Lesen sie die antworten

#1 Frank Dzaebel
29/11/2008 - 20:06 | Warnen spam
Hallo Carsten,

wie löscht man Zuweisungen von anonymen delegaten?



Hier eine Möglichkeit, die sich an Dein Beispiel anlehnt:

public class MyClass
{
public delegate void OnMyEventHandler(string workString);
public static event OnMyEventHandler OnMyEvent;
}

static MyClass.OnMyEventHandler del;
public void MyMethode()
{
del = delegate(string workString) {/*tue irgendetwas...*/};
MyClass.OnMyEvent += del;
}

public void MyDelete()
{
MyClass.OnMyEvent -= del;
}

private void Form1_Load(object sender, EventArgs e)
{
MyClass mc = new MyClass();
MyMethode(); // Delegate subscriben
MyDelete(); // Delegate löschen
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen