1. 델리게이트(Delegate)
델리게이트(Delegate)는 함수를 대신 실행해주는 대리자
델리게이틑 함수를 대신 실행해주는 역할을 하기 때문에 리턴타입과 매개변수가 꼭 동일한 함수만 대신 실행해줄 수 있다.
2. 델리게이트의 선언
public delegate 리턴타입 델리게이트명(매개변수);
public delegate void TestDel(); //틀
public TestDel testDel; //인스턴스 - 함수가 들어갈 수 있는 곳
public void Process()
{
Debug.Log("전처리")
if(A가 처리되어야할 조건)
FuncA();
else if(B가 처리되어야할 조건)
FuncB();
Debug.Log("후처리");
}
public void Process()
{
}
public void FuncA()
{
Debug.Log("A기능을 수행함");
}
public void FuncB()
{
Debug.Log("B기능을 수행함");
}
public void FuncC(int value)
{
Debug.Log("C기능을 수행함");
}
체인(chain)
델리게이트는 마치 구독을 했다가 구독을 취소하는 것처럼 연산자를 이용하여 넣고 뺄 수 있다.
testDel += FuncA;
testDel += FuncB;
testDel -= FuncA;
testDel -= FuncB;
testDel += () => {Debug.Log("람다식을 통한 기능추가");};
testDel += () =>
{
Debug.Log("람다문을 통한");
Debug.Log("기능추가");
};