/// <summary> /// Skapar ett objekt som implementerar interfacet INoise och som /// därmed kan för lite oljud. /// </summary> /// <param name="type">Värdet som bestämmer vilken type av objekt som ska skapas.</param> /// <returns>En referens till det nyligen skapade objektet.</returns> private static INoise CreateNoiseObject(NoiseObjectType type) { switch (type) { case NoiseObjectType.Car: return(new Car()); case NoiseObjectType.Cat: return(new Cat()); case NoiseObjectType.Dog: return(new Dog()); default: throw new NotImplementedException(); } }
/// <summary> /// Skapar ett objekt som implementerar interfacet INoise och som /// därmed kan för lite oljud. /// </summary> /// <param name="type">Värdet som bestämmer vilken type av objekt som ska skapas.</param> /// <returns>En referens till det nyligen skapade objektet.</returns> private static INoise CreateNoiseObject(NoiseObjectType type) { switch (type) { case NoiseObjectType.Car: return new Car(); case NoiseObjectType.Cat: return new Cat(); case NoiseObjectType.Dog: return new Dog(); default: throw new NotImplementedException(); } }
/// <summary> /// Programmets startpunkt. /// </summary> static void Main() { bool exit = false; NoiseObjectType type = NoiseObjectType.Indefinite; do { switch (GetMenuChoice()) { case 0: exit = true; continue; case 1: type = NoiseObjectType.Cat; break; case 2: type = NoiseObjectType.Dog; break; case 3: type = NoiseObjectType.Car; break; case 4: Console.Clear(); Test test = new Test(); test.Run(); continue; #if DEBUG default: Debug.Assert(false, "Hantering av menyalternativet saknas."); continue; #endif } Console.Clear(); INoise noise = CreateNoiseObject(type); noise.MakeNoise(); ContinueOnKeyPressed(); } while (!exit); }