🙇‍♀️Delegate

🪐Delegate

delegate int OnClicked();

  • 형식은 형식인데, 함수자체를 인자로 넘겨주는 그런 형식
  • 반환: int, 입력: void
  • OnClicked이 delegate의 형식 이름이다
static void ButtonPressed(OnClicked ClickFuntion/* 함수 자체를 인자로 넘겨줌 */)
{
    ClickFuntion();
    /* 함수 호출*/
}

함수를 인자로 받는 Delegate!

static int TestDelegate()
{
    Console.WriteLine("Delegate!");
    return 0;
}

함수를 만들고

ButtonPressed(TestDelegate); - 사용

🪐내부구현

OnClicked clicked = new OnClicked(TestDelegate);

clicked += TestDelegate2;

  • OnClicked 타입의 새로운 객체를 만들고 그 객체는 TestDelegate를 담고 있는것
  • clicked(); 로 호출이 가능
  • 체이닝이 가능함
    • 체이닝은 함수를 하나만 부르는것이 아니라 여러개를 동시에 부를 수 있음
    • TestDelegate2 함수를 clicked에 합칠 수 있음
static int TestDelegate2()
{
    Console.WriteLine("Delegate2!");
    return 0;
}
  • TestDelegate2

태그:

카테고리:

업데이트: