모름

대리자 예제 코드

 

호출자 -> 메소드로 이어지는 과정에, 메소드를 참조하고 있는 대리자를 집어넣어 대리자에 의해서 메소드를 호출합니다. 예제 코드를 작성해봅니다.

 

delegate int MyDelegate(int a, int b);

class Calculator {
    public int Plus (int a, int b) {
        return a + b;
    }
    public int Minus (int a, int b) {
        return a - b;
    }
}

class Program {
    static void Main(string[] args) {
        Calculator Cal = new Calculator();
        MyDelegate Callback;

        Callback = new MyDelegate(Cal.Plus);
        Console.WriteLine(Callback(5, 10));

        Callback = new MyDelegate(Cal.Minus);
        Console.WriteLine(Callback(7, 5));
    }
}

 

보다시피 delegate는 하나의 타입이기에 대리자의 인스턴스를 생성해야합니다. 이때 참조할 '메소드' 를 매게 변수로 넘김으로서 대리자에게 메소드의 주소를 알려주는 것입니다. 대리자는 메소드의 주소를 가지고 호출할것이구요.

 

 

 


 

 

 

결과물