class JamesBond : IInformiere
public void Inform(Mail mail)
Console.WriteLine(mail.Sender);
delegate bool Del1(Mail mail);
delegate void Del2(Mail mail);
public void Register(Del1 d1, Del2 d2)
public void CheckMail(Mail mail)
if (InformBool != null && InformBool(mail))
public static void Main()
JamesBond jb = new JamesBond();
FordMeade fm = new FordMeade();
{Sender = "Melanie", Receiver = "Tobias", Subject = "privat", Body = "Willst b kaufen?"};
{Sender = "Tobias", Receiver = "Florian", Subject = "privat", Body = "Willst b kaufen?"};
{Sender = "Florian", Receiver = "Chrissi", Subject = "privat", Body = "Willst b kaufen?"};
{Sender = "Chrissi", Receiver = "Melanie", Subject = "privat", Body = "Willst b kaufen?"};
fm.Register(delegate (Mail m)
{return true;}, jb.Inform);
fm.Register((mail) => {if (mail.Body.Length > 10)
fm.Register(delegate (Mail mail) {if(mail.Subject.Contains("privat"))return true; return false;}, jb.Inform);
fm.Register(mail => {if(mail.Sender == "Trevor Philips") return true; return false;}, jb.Inform);