델리게이트

RudinP·2023년 3월 27일
0

Study

목록 보기
9/222

델리게이트란?

  • 영어 뜻: 대행하다.
  • 어떤 기능을 목록에 추가해두면 델리게이트가 대신 실행해줌.

델리게이트의 의의

  • 델리게이트를 쓰지 않을 경우 메소드를 실행하는 것을 직접 명시해둬야 함.
  • 미리 어떤 메소드가 실행하는 시점에 실행될 지 알고 있어야 함.
  • 실시간으로 특정 상황에서 실행되는 코드 종류를 변경할 수 있음.

델리게이트의 원리

  • 함수에 대한 포인터를 변수로 가지고, 포인터를 통해 함수를 실행시킨다.

델리게이트 사용법

  1. 델리게이트 형 선언
    delegate float Calculate(float a, float b);
  • float형을 반환하고, float 2개의 매개변수를 가지는 함수만 대행 가능
  1. 델리게이트 오브젝트 생성
    Calculate onCalculate;
  2. 델리게이트 변수에 원하는 함수 할당
void Start()
{
	onCalculate = Sum; //Sum()이 아님을 주의. 
    onCalculate += Subtract; //추가적으로 덧붙이기도 가능, 두 종류 동시 실행
    onCalculate -= Subtract; //삭제도 가능
}
~중략~
void Update()
{
	if(Input.GetKeyDown(KeyCode.Space)) onCalculate(1,10);
}

델리게이트 주의점

  • 리턴값 또한 받아올 수 있으나, 여러가지를 델리게이트에 등록해 둔 경우 마지막으로 등록했던 함수의 리턴값만 받아온다.
profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글