Klassen und Events
Klassen und Events
CSharp bietet die elegante Möglichkeit, in Klassen aufgerufenen Methoden dem Programm Informationen über Events zurückzugeben. In Verbindung mit Threads, kann somit ein sehr übersichtlicher Informationskreislauf erstellt werden.
Die Aufrufende Klasse
Folgende Methode ruf über das Objekt "testText" die Methode "GibText" auf.
public void TextAbrufen()
{
// Objekt initialisieren
TextKlasse testText = new TextKlasse();
// Event zuweisen
testText.NeuerTextEvent += new EventHandler(MeinTextEvent);
// Methode aufrufen
testText.GibText("meinText");
// Eventzuweisung entfernen
testText.NeuerTextEvent -= MeinTextEvent;
// Objekt nullisieren
testText = null;
}
private void MeinTextEvent(object sender, TextEvent te)
{
textBox.Text = te.Text;
}
Die "TextKlasse"
Die TextKlasse enthält die Funktion "GibText" und das entsprechende Event.
public class TextKlasse
{
#region Constructor
public TextKlasse()
{
}
#endregion
#region Public methods
public void GibText(string meinText)
{
NeuerTextEvent(this, new TextEvent(meinText));
}
#endregion
#region Events
public event EventHandler NeuerTextEvent;
#endregion
}
Die Event-Klasse
Wir benötigen als Informationsträger eine Klasse, diese ist wiederum von der Klasse "EventArgs" abgeleitet.
public class TextEvent : EventArgs
{
#region Member vars
private string _text;
#endregion
#region Constructor
public TextEvent(string text)
{
_text = text;
}
#endregion
#region Public fields
public string Text
{
get { return _item; }
}
#endregion
}
Diese Klasse enthält die member Variable "_text". Über den Konstructor wird sie mit bei der Erzeugung der Klasse mit Daten gefüllt. Über das public Field geben wir der aufrufenden Klasse die Möglichkeit diese Variable abzufragen. Wir behalten uns über dieses public Field vor, die Textvariable unseren bedürfnissen vor der Ausgabe zu verändert. Natürlich ist es dem Programmierer überlassen, wie er Variablen definieren möchte.
No Comments