private static void DoeExtras() { Console.WriteLine(); Console.WriteLine("++++++++++++++++ EXTRA (poor man's testing ;-) ) +++++++++++++++"); Console.WriteLine(); // check negatieve aankoopprijs boek try { Leesboek boek2 = new Leesboek(new Genre { Leeftijd = 17 }, "titeltje", "auteurtje", -250m, "een onderwerp"); } catch (NegatiefGetalException ex) { Console.WriteLine("Fout:" + ex.Message + ':' + ex.Getal); } // check negatieve leeftijd try { Woordenboek woordenboek2 = new Woordenboek(new Genre { Leeftijd = -5 }, "titeltjeW", "auteurtjeW", 20m, "Nederlands-Engels"); } catch (NegatiefGetalException ex) { Console.WriteLine("Fout:" + ex.Message + ':' + ex.Getal); } // check negatieve aankoopprijs boekenrek try { IVoorwerpen eenBoekenrekVoorwerp = new Boekenrek(2.15d, 0.95d, -50m); // check toegankelijkheid readonly property: da ga dus nie, joepi...?! : ((Boekenrek)EenBoekerrekVoorwerp).Breedte = 5d; } catch (NegatiefGetalException ex) { Console.WriteLine("Fout:" + ex.Message + ':' + ex.Getal); } // check lege Titel (Lees)Boek try { Leesboek boek3 = new Leesboek(new Genre { Leeftijd = 17 }, " ", "auteurtje", 250m, "een onderwerp"); } catch (ArgumentException ex) { Console.WriteLine("Fout:" + ex.Message); } // check null Auteur (Woorden)Boek try { Woordenboek woordenboek3 = new Woordenboek(new Genre { Leeftijd = 17 }, "jep", null, 250m, "een taal"); } catch (ArgumentException ex) { Console.WriteLine("Fout:" + ex.Message); } }
static void Main(string[] args) { // voorwerpen maken IVoorwerpen[] voorwerpen = new IVoorwerpen[3]; voorwerpen[0] = new Boekenrek(2.15d, 0.95d, 50m); Leesboek boek = new Leesboek(new Genre { Leeftijd = 17 }, "titeltje", "auteurtje", 250m, "een onderwerp"); Woordenboek woordenboek = new Woordenboek(new Genre { Leeftijd = 18 }, "titeltjeW", "auteurtjeW", 20m, "Nederlands-Engels"); voorwerpen[1] = boek; voorwerpen[2] = woordenboek; // print alle IVoorwerpen (gewoon lusje) Console.WriteLine("- gewoon lusje:"); foreach (IVoorwerpen voorwerp in voorwerpen) { if (voorwerp != null) { voorwerp.GegevensTonen(); } } PrintTussenLijn(); // print alle IVoorwerpen (delegate) Console.WriteLine("- delegate:"); Action<IVoorwerpen[]> toonDeGegevenes = voorwerpDinges => { foreach (IVoorwerpen voorwerpje in voorwerpDinges) if (voorwerpje != null) { voorwerpje.GegevensTonen(); } }; toonDeGegevenes(voorwerpen); PrintTussenLijn(); // print totale winst Console.WriteLine("totale winst = {0}", voorwerpen.Sum(voorwerp => { if (voorwerp != null) return voorwerp.Winst; else return 0; })); //++++++ BEGIN extra blabla ++++++ DoeExtras(); //++++++ EINDE extra blabla ++++++ // hou console open Console.WriteLine(); Console.WriteLine("+----+ press <enter> to quit +----+"); Console.Read(); }