델리게이트(delegate) 활용_1
using System;
using System.Collections;
namespace FirstCon
{
class Program
{
public static int Add(int a, int b) { return a+b; }
public static int Mul(int a, int b) { return a*b; }
static void Main()
{
int a = 3, b = 5;
int o;
Console.Write("어떤 연산을 하고 싶습니까? (1: 덧셈, 2: 곱셈) " );
o = Convert.ToInt32(Console.ReadLine());
switch(o)
{
case 1:
Console.WriteLine("결과는 {0} 입니다.", Add(a, b));
break;
case 2:
Console.WriteLine("결과는 {0} 입니다.", Mul(a, b));
break;
}
}
}
}
/ *
사용자에게 어떤 메서드를 호출할 것인가를 키도브로 입력 받아 switch 문으로 두 메서드 중 하나를 선택하여 호출한다. 선택해야 할 메서드가 두 개 정도라면 switch 문도 쓸만하고 if문이나 삼항 조건 연산자로 더 짧게 만들 수도 있다. 그러나 수십 개의 메서드 중 하나를 호출해야 한다면 switch 문의 case 를 일일이 작성하는 것은 속도도 느릴 뿐만 아니라 프로그램도 비대해지고 보기에도 좋지 않다.
다음은 델리게이트를 활용한 코드이다.
*/
using System;
using System.Collections;
namespace FirstCon
{
delegate int IntOp(int a, int b);
class Program
{
public static int Add(int a, int b) { return a + b; }
public static int Mul(int a, int b) { return a * b; }
static void Main()
{
IntOp[] arOp = { Add, Mul };
int a = 3, b = 5;
int o;
Console.Write("어떤 연산을 하고 싶습니까? (1: 덧셈, 2: 곱셈) ");
o = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("결과는 {0} 입니다.", arOp[o - 1](a,b));
}
}
}
[출처] 델리게이트(delegate) 활용_1|작성자 뚜비