오늘 한 일
C# 문법 복습.
델리게이트 복습.
람다 복습.
오늘 내용은 복습 위주로 델리게이트와 람다에 대해서 설명해드리겠습니다.
- 델리게이트란?
델리게이트(delegate)는 “메서드(함수) 자체를 변수처럼 저장하고 전달할 수 있게 해주는 기능.
void Start ()
{
Show1();
}
public delegate void DelegateFun();
public DelegateFun delegateFun;
public void Show1()
{
delegateFun = TestFun;
delegateFun.Invoke();
//delegateFun(); Invoke대신 이렇게도 가능하지만 위에는 델리게이트라는게 확실히 알 수 있기 때문에 위에처럼 하는게 보기 좋을 수 있습니다.
}
public void TestFun()
{
Debug.Log("나는 왕이다");
}
// 기본적인 델리게이트의 구조입니다. 매개변수, 반환형이 없는 예시입니다.
public delegate void DelegateFun2(int num, string text);
public DelegateFun2 delegateFun2;
public void Show1()
{
delegateFun = TestFun2;
public DelegateFun2(1, "나는 왕이다");
}
public void TestFun2(int num, string text)
{
Debug.Log(text + num);
}
// 매개변수가 있는 델리게이트의 구조입니다. 간단하게 매개변수만 똑같이 추가를 해주시면 됩니다.
public delegate int RDelegateFun();
public RDelegateFun rdelegateFun;
public void Show1()
{
rDelegateFun = RTestFun1;
int resultNum = rDelegateFun();
Debug.Lod("이것이 왕이다" + resultNum);
}
public void RTestFun1()
{
return 1;
}
//반환값이 있는 델리게이트 입니다. 반환값이 생긴다고 코드가 크게 변하지는 않았습니다.
public delegate int RDelegateFun2(int num);
public RDelegateFun2 rdelegateFun2;
public void Show1()
{
rDelegateFun2 = RTestFun2();
int resultNum = RTestFun2(56);
Debug.Lod("이것이 왕이다" + resultNum);
}
public void RTestFun2(int num)
{
return num;
}
//이것은 매개변수와 반환값이 있는 델리게이트 입니다.
여기서 이제 새로운 걸 추가해봅시다.
Action tAction;
public void Show3()
{
tAction = TestFun;
iAction();
}
public void TestFun()
{
Debug.Log("나는 왕이다");
}
//그동안 이걸 쓰셨지만
public delegate void DelegateFun();
public DelegateFun delegateFun;
= Action tAction; 이거 하나로 단축이 가능합니다. 델리게이트를 더 쉽게 쓰는 방법이 생겼네요.
public Action<int> tAction2;
//매개 변수가 생긴다면? <int>이것만 추가해주면 끝
만약 근데 리턴값이 생긴다면 여기서는 또 다른것을 사용해주어야 합니다.
리턴값이 있을 때 = Func
pulbic Func<int, string, string> r Fun3;
public void Show4()
{
rFun=RTestFun3;
Debug.Log(rFun(1, "나는 왕이다"));
}
//이런식으로 사용을 해주시면 됩니다.
오늘은 여기까지 입니다.
추워지는 날씨 몸조심 하시길 바랍니다.