// methods 배열에 담긴 델리게이트를 opCode 인자에 따라 호출 public void Calculate(char opCode, int operand1, int operand2) { //switch (opCode) //{ // case '+': // Console.WriteLine("+: " + methods[0](operand1, operand2)); // break; // case '-': // Console.WriteLine("-: " + methods[1](operand1, operand2)); // break; // case '*': // Console.WriteLine("*: " + methods[2](operand1, operand2)); // break; // case '/': // Console.WriteLine("/: " + methods[3](operand1, operand2)); // break; //} Console.Write(opCode + " : "); foreach (MessageMap Temp in aMessageMap) { if (Temp.opCode == opCode) { Console.WriteLine(Temp.Calc(operand1, operand2)); } } }
// methods 배열에 담긴 델리게이트를 opCode 인자에 따라 호출 public void Calculate(char opCode, int Operand1, int Operand2) { Console.Write(opCode + " : "); foreach (MessageMap Temp in aMessageMap) // 200개를 만들어도 이 foreach문은 바뀌지않지만, 스위치케이스문은 200개를 다 일일이 추가해줘야한다. { if (Temp.opCode == opCode) { Console.WriteLine(Temp.Calc(Operand1, Operand2)); } } }
public void Calculate(char opCode, int operand1, int operand2) { Console.Write(opCode + " : "); foreach (MessageMap Temp in aMessageMap) { if (Temp.opCode == opCode) { Console.WriteLine(Temp.Calc(operand1, operand2)); } } }