Zum Inhalt springen

C# : Ereignisse erstellen und in den Code einbinden


DaSumpf

Empfohlene Beiträge

Holla,

ich hab ein kleines Problem was die Thematik "Ereignisse" angeht..... ich habe es zwar schon geschafft sowohl delegates als auch events zu schreiben, in meinen Code einbinden kann ich sie leider noch nicht.

using System;
using System.Collections;

namespace Console_040
{
class Medicine
{
public Medicine(string name,DateTime date)
{
this.name=name;
this.date=date;
}
private string _name;
private DateTime _date;

public string name
{
get {return _name;}
set {_name=value;}
}
public DateTime date
{
get {return _date;}
set {_date=value;}
}
public bool IsValid()
{
DateTime today=System.DateTime.Today;
if (today<=date) {return true;}
else return false;
}
}
class MediCollection // Herausgeber
{
private SortedList _MediColl;

public MediCollection()
{
_MediColl = new SortedList();
}
public Medicine this[string name]
{
get {return (Medicine) _MediColl[name];}
}
public Medicine this[int index]
{
get {return (Medicine) _MediColl.GetByIndex(index);}
}
public void Add(string name,DateTime date)
{
_MediColl.Add(name,new Medicine(name,date)); // hier und in den folgenden Zeilen ist bestimmt was falsch
MediEventArgs mea = new MediEventArgs();
mea.add += new MediEventArgs.MediEventHandler(MediEventArgs.CatchEvent);
mea.add -= new MediEventArgs.MediEventHandler(MediEventArgs.CatchEvent);
mea.CheckEvent();
}
public void Remove(string name)
{
_MediColl.Remove(name); // hier und in den folgenden Zeilen ist bestimmt was falsch
MediEventArgs mea = new MediEventArgs();
mea.remove += new MediEventArgs.MediEventHandler(MediEventArgs.CatchEvent);
mea.remove -= new MediEventArgs.MediEventHandler(MediEventArgs.CatchEvent);
mea.CheckEvent();
}
public void Clear()
{
_MediColl.Clear();
}
public bool Contains(string name)
{
return _MediColl.Contains(name);
}
}

public class MediEventArgs : EventArgs //Events deklarieren,hier sollte alles stimmen ( glaube bzw hoffe ich )
{
public delegate void MediEventHandler(string Text);

public event MediEventHandler add;

public event MediEventHandler remove;

public void CheckEvent()
{
if (null!=add) add("add-Ereignis ausgelöst");
if (null!=remove) remove("remove-Ereignis ausgelöst");
}
public static void CatchEvent(string Text)
{
Console.WriteLine(Text);
}
}

class App //Abonnent
{
[STAThread]
static void Main(string[] args)
{
MediCollection col = new MediCollection();

col.Add("Tomapirin", DateTime.Parse("20.04.2004"));
col.Add("Frubizym", DateTime.Parse("10.10.2002"));

Console.WriteLine(col[0].IsValid().ToString());
Console.WriteLine(col[1].IsValid().ToString());
Console.ReadLine();
}
}
}[/PHP]

Das Programm soll dazu dienen über Medikamente Buch zu führen, soll heissen wenn ein Element der Liste abgelaufen ("isValid") ist, dann soll der User informiert werden.

Danke euch allen schon mal für die hoffentlich folgende Hilfe ;o))

DaSumpf

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...