본문 바로가기

DEV_STUDY/C#

[C# 객체지향] Delegate 대리자!


딜리게이트에 대해서 알아보자.
Delegate란?

- 함수의 대리자.
- 함수를 보다 효율적으로 사용하기 위해서 특정 함수 자체를 캡슐화 하기 위한 도구!

한마디로 클래스안의 특정 함수만 빼와서 사용한다고 보면된다.

실전 예제를 들어서 보여주는게 더욱 쉬울것이다.

delegate void show1();
delegate void show2(int a);
    class aaa
    {
        static void Main(string[] args)
        {
            aaa clas= new aaa();
            show1 sw = new show1(clas.f1);
            show2 sw2 = new show2(clas.f2);
            sw();
           sw2(232);

       }
        public void f1()
        {
            Console.WriteLine("이것은 바로 딜리게이트이다");
        }
        public void f2(int a)
        {
            Console.WriteLine("딜리게이트는 {0}만큼 멋지다",a);
        }
    }
 
이렇게 sw(), sw2()를 사용해서 바로 쓸 수가 있다. 여기서 중요한 것은 이 Delegate가 어떻게 쓰이는가 하는것이다.
나중에 쓰레드개념이 나오면 이 Delegate와의 조합으로 쓰인다니 , 뒷부분 쓰레드가 나오면 그때 좀더 알아보도록 하자.