Zum Inhalt springen

C# : Ereignisse erstellen und in den Code einbinden


Empfohlene Beiträge

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...