jm_p_op

c# - Delegate(test) 본문

C#

c# - Delegate(test)

jm_p_op 2023. 8. 24. 21:08

함수를 변수에 저장하는것을 Delegate라고 한다.

a,b,c행동을 어떤 순서로 정할지는 몰르겠지만 원하는데로 넣고 뺄 때 사용한다.

list형식과 비슷함

  • 같은 함수 추가가능
  • +=뒤에 함수를 추가
  • -=뒤에 함수를 제거
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test1
{

    internal class Program
    {
        public delegate void MyDelegate(string msg);

        public static void MethodA(string msg)
        {
            Console.WriteLine("param of methodA : " + msg);
        }
        public static void MethodB(string msg)
        {
            Console.WriteLine("param of MethodB : " + msg);
        }
        public static void MethodC(string msg)
        {
            Console.WriteLine("param of MethodC : " + msg);
        }
        static void Main(string[] args)
        {
            MyDelegate del;
            del = new MyDelegate(MethodB); //MethodA 메서드를 참조
            del +=MethodA; //MethodA 메서드를 참조
            del +=MethodB; //MethodA 메서드를 참조
            del("1");
            del -= MethodB;
            del("2");
        }
    }
}