private static void Main(string[] args) { #region Exercise 1 Console.WriteLine("Exercise1"); INumberVisitor Vis = new NumberVisitor(); INumber Barry = new MyFloat(2); INumber Henk = new MyFloat(3); Barry.Visit(Vis); Console.WriteLine(""); #endregion Exercise 1 #region Exercise 2 Console.WriteLine("Exercise2"); IMusicLibraryVisitor MusicLibraryVisitor = new MusicLibraryVisitor(); ISong HMSong1 = new HeavyMetal("Super Kill"); ISong JSong1 = new Jazz("Frank Sinatra: The Very Best Of"); List<ISong> SongList = new List<ISong>(); SongList.Add(HMSong1); SongList.Add(JSong1); foreach (ISong Song in SongList) { Song.Visit(MusicLibraryVisitor); } Console.WriteLine(""); #endregion Exercise 2 #region Exercise 3 Console.WriteLine("Exercise3"); IOption<int> TestInt1 = new Some<int>(5); IOption<int> TestInt2 = new None<int>(); I_IntPrettyPrinterIOptionVisitor IntPrint = new IntPrettyPrinterIOptionVisitor(); string TestString1 = TestInt1.Visit(IntPrint); Console.WriteLine(TestString1); Console.WriteLine(""); #endregion Exercise 3 #region Exercise 4 Console.WriteLine("Exercise4"); IOptionLambda<MyFloat> f1 = new NoneLambda<MyFloat>(); string new_number1 = f1.Visit(x => x.value.ToString(), () => "Nothing here, b0ss."); Console.WriteLine(new_number1); IOptionLambda<MyFloat> f2 = new SomeLambda<MyFloat>(new MyFloat(5)); string new_number2 = f2.Visit(x => "The number is " + x.value.ToString() + "! :D", () => "Nothing here, b0ss."); Console.WriteLine(new_number2); #endregion Exercise 4 Console.ReadKey(); }
public void onJazz(Jazz Song) { JSongList.Add(Song); Console.WriteLine("Greetings from the MLV!\n\"" + Song.Name + "\" added to \'JazzSongs\'."); }