public void doWork(Calc_Data data) { switch (data.type) { case Calc_Type.CALC_SET: this.set(data.value); break; case Calc_Type.CALC_ADD: this.add(data.value); break; case Calc_Type.CALC_SUB: this.sub(data.value); break; case Calc_Type.CALC_MULT: this.mult(data.value); break; default: break; } }
static public void CalcTest() { Calc myCalc = new Calc(); System.Console.WriteLine("\n------------ Calc Phase 1: Explicit Calls ---------------\n"); myCalc.set(3); myCalc.add(2); myCalc.sub(8); myCalc.mult(2); myCalc.sub(5); myCalc.add(4); myCalc.add(22); myCalc.sub(4); myCalc.mult(2); myCalc.sub(5); myCalc.set(11); myCalc.add(2); myCalc.sub(7); myCalc.mult(3); myCalc.sub(5); System.Console.WriteLine("\n------------ Calc Phase 2: Data Driven ---------------\n"); Calc_Data data; // myCalc.set(3); data.type = Calc_Type.CALC_SET; data.value = 3; myCalc.doWork(data); // myCalc.add(2); data.type = Calc_Type.CALC_ADD; data.value = 2; myCalc.doWork(data); // myCalc.sub(8); data.type = Calc_Type.CALC_SUB; data.value = 8; myCalc.doWork(data); // myCalc.mult(2); data.type = Calc_Type.CALC_MULT; data.value = 2; myCalc.doWork(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myCalc.doWork(data); // myCalc.add(4); data.type = Calc_Type.CALC_ADD; data.value = 4; myCalc.doWork(data); // myCalc.add(22); data.type = Calc_Type.CALC_ADD; data.value = 22; myCalc.doWork(data); // myCalc.sub(4); data.type = Calc_Type.CALC_SUB; data.value = 4; myCalc.doWork(data); // myCalc.mult(2); data.type = Calc_Type.CALC_MULT; data.value = 2; myCalc.doWork(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myCalc.doWork(data); // myCalc.set(11); data.type = Calc_Type.CALC_SET; data.value = 11; myCalc.doWork(data); // myCalc.add(2); data.type = Calc_Type.CALC_ADD; data.value = 2; myCalc.doWork(data); // myCalc.sub(7); data.type = Calc_Type.CALC_SUB; data.value = 7; myCalc.doWork(data); // myCalc.mult(3); data.type = Calc_Type.CALC_MULT; data.value = 3; myCalc.doWork(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myCalc.doWork(data); System.Console.WriteLine("\n------------ Calc Phase 3: Queued Data Driven ---------------\n"); // Creates and initializes a new Queue. System.Collections.Generic.Queue <Calc_Data> myQ = new System.Collections.Generic.Queue <Calc_Data>(); // myCalc.set(3); data.type = Calc_Type.CALC_SET; data.value = 3; myQ.Enqueue(data); // myCalc.add(2); data.type = Calc_Type.CALC_ADD; data.value = 2; myQ.Enqueue(data); // myCalc.sub(8); data.type = Calc_Type.CALC_SUB; data.value = 8; myQ.Enqueue(data); // myCalc.mult(2); data.type = Calc_Type.CALC_MULT; data.value = 2; myQ.Enqueue(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myQ.Enqueue(data); // myCalc.add(4); data.type = Calc_Type.CALC_ADD; data.value = 4; myQ.Enqueue(data); // myCalc.add(22); data.type = Calc_Type.CALC_ADD; data.value = 22; myQ.Enqueue(data); // myCalc.sub(4); data.type = Calc_Type.CALC_SUB; data.value = 4; myQ.Enqueue(data); // myCalc.mult(2); data.type = Calc_Type.CALC_MULT; data.value = 2; myQ.Enqueue(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myQ.Enqueue(data); // myCalc.set(11); data.type = Calc_Type.CALC_SET; data.value = 11; myQ.Enqueue(data); // myCalc.add(2); data.type = Calc_Type.CALC_ADD; data.value = 2; myQ.Enqueue(data); // myCalc.sub(7); data.type = Calc_Type.CALC_SUB; data.value = 7; myQ.Enqueue(data); // myCalc.mult(3); data.type = Calc_Type.CALC_MULT; data.value = 3; myQ.Enqueue(data); // myCalc.sub(5); data.type = Calc_Type.CALC_SUB; data.value = 5; myQ.Enqueue(data); // Now the queue is NOW filled // print the contents int count = myQ.Count; for (int i = 0; i < count; i++) { Calc_Data tmpData = myQ.Dequeue(); myCalc.doWork(tmpData); } }