using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
List<AandeelKoers> akoersen = new List<AandeelKoers>();
akoersen.Add(new AandeelKoers(10, 12));
akoersen.Add(new AandeelKoers(54, 51));
akoersen.Add(new AandeelKoers(37, 37));
akoersen.Add(new AandeelKoers(11.42, 11.43));
akoersen.Add(new AandeelKoers(13.87, 13.86));
Console.WriteLine("Aandelen");
foreach (IKoers koers in akoersen)
Wijziging<IKoers> wijziging = new Wijziging<IKoers>(koers);
string tekst = WijzigingsTekst(wijziging);
Console.WriteLine("Opening {0} / Slot {1}. Wijziging: {2}.",
koers.Openingskoers, koers.Slotkoers, tekst);
List<ObligatieKoers> okoersen = new List<ObligatieKoers>();
Console.WriteLine("Obligaties");
okoersen.Add(new ObligatieKoers(110, 112));
okoersen.Add(new ObligatieKoers(154, 151));
okoersen.Add(new ObligatieKoers(137, 137));
okoersen.Add(new ObligatieKoers(111.42, 111.43));
okoersen.Add(new ObligatieKoers(113.87, 113.86));
foreach (IKoers koers in okoersen)
Wijziging<IKoers> wijziging = new Wijziging<IKoers>(koers);
string tekst = WijzigingsTekst(wijziging);
Console.WriteLine("Opening {0} / Slot {1}. Wijziging: {2}.",
koers.Openingskoers, koers.Slotkoers, tekst);
static string WijzigingsTekst(Wijziging<IKoers> wijziging)
if (wijziging.IsDaling) return "Gedaald";
if (wijziging.IsStijging) return "Gestegen";
if (wijziging.IsOnveranderd) return "Onveranderd";
double Openingskoers {get; set;}
double Slotkoers {get; set;}
public class AandeelKoers : IKoers
public double Openingskoers
public AandeelKoers (double openingskoers, double slotkoers)
Openingskoers = openingskoers;
public class ObligatieKoers : IKoers
public double Openingskoers
public double Slotkoers {get{return _slot;} set{ _slot = value;}}
public ObligatieKoers (double openingskoers, double slotkoers)
Openingskoers = openingskoers;
public class Wijziging<T> where T : IKoers
public Wijziging (T koers)
get { return 0 > Koers.Openingskoers.CompareTo(Koers.Slotkoers); }
get { return 0 < Koers.Openingskoers.CompareTo(Koers.Slotkoers); }
public bool IsOnveranderd
get { return 0 == Koers.Openingskoers.CompareTo(Koers.Slotkoers); }