반응형
using System;
using System.Collections.Generic;
using System.Text;

// 델리게이트  
// C/C++에서 사용된 함수포인터 !! 
// C#에서는 포인터 개념을 사용하지 않기때문에 .. 
//  메소드에 대한 참조를 델리게이트 !!
// 이벤트 처리기 -->  콜백함수  
// --> 실행 시간에 동적으로 호출할 메서드 처리를 위해  사용 !!! 
//  함수포인터와 델리게이트의 차이점 !! 
// --> 대리자는 객체 !! 
// --> 동적바인딩을 위해 지원한다 !!  
//  동적 바인딩 ?? 
// 실행시간에 어떤 함수가 호출되어야 할지를 결정하는 기법 !! 


namespace 델리게이트
{
    class Program
    {
        // 1. static 메소드 
        // 2. 인스턴스 메소드 
        // 3. 다른 딜리게이트 
        public delegate void MyDelegate();

        static   public void foo() 
        {
            Console.WriteLine("foo() ");
        }
        static public void  goo()
        {
            Console.WriteLine("goo() ");
        } 

        static void Main(string[] args)
        {
           MyDelegate md; 
           Random rand =  new Random(2);
           for (int i = 0; i < 10; i++)
           {
               if ((rand.Next() % 2) == 0)
                   md = new MyDelegate(Program.foo);
               else
                   md = new MyDelegate(Program.goo);

               md();
           }
        }
    }
}

'C#' 카테고리의 다른 글

[C#] 상속  (0) 2014.11.18
[C#] 배열  (0) 2014.11.18
[C#] C#에서 제공하는 기본 타입들  (0) 2014.11.18
[C#] C# 언어의 특징  (0) 2014.11.18
[C#] C# 객체 지향 프로그래밍!!  (0) 2014.11.18

+ Recent posts