C#

C#_delegate: 메서드를 변수로 사용하는 개념

S_pot 2021. 6. 14. 09:24
 class Program
    {
        // delegate SMART type을 생성
        delegate void SMART();

        static void Main(string[] args)        
        {           
            Test1();
            Test2();
            Test3();
            SMART A;     
            A = Test1;  
            A();    // Test1();과 같은 내용이 호출된다. 변수로 Test1을 가르킬 수 있다.
            A = Test2;
            A();
            A = Test3;
            A();

        }
    
        static void Test1()
        {
            Console.WriteLine("Test1");
        }

        static void Test2()
        {
            Console.WriteLine("Test2");
        }

        static void Test3()
        {
            Console.WriteLine("Test3");
        }


    }

 

 

 

class Program
    {
        static void Main(string[] args)
        {
            // delegate 응용(배열)
            SMART[] A = new SMART[3];
            A[0] = Test1;
            A[1] = Test2;
            A[2] = Test3;
            foreach( var item in A)
            {
                item();
            }
        }
        
        delegate void SMART();

        static void Test1()
        {
            Console.WriteLine("Test1");
        }
        static void Test2()
        {
            Console.WriteLine("Test2");
        }
        static void Test3()
        {
            Console.WriteLine("Test3");
        }
    }