C++에서는 함수 포인터라 부르던 것은 C#에서는 deligate라는 이름으로 부르고 사용한다.(아직까지도 함수 포인터 소리만 들으면 머리가 어지럽다.. 익숙하지 않아서겠지)
이 함수 포인터를 직접 작성해서 사용할 수 있겠지만 c#에서는 이러한 템플릿을 미리 제공해준다고 한다
Func -> 반환형을 제공해주는 deligate(return T 형식)
Action-> 반환형을 제공해주지 않는 deligate(void 형식)
func는 변수명 앞에 Func<T> 타입으로 붙여주고, 마지막 T가 반환하는 데이터 타입을 나타낸다(Func<int,int,int>라면 앞의 두 int를 매개변수로 받고 int를 반환 / <int,string>이면 int를 매개변수로 string을 반환형으로)
action은 반환형이 없기 때문에 Action<T>로만 작성하고 T에 들어가는 자료형들이 곧 매개변수가 된다.
이를 자주 사용하게 될 것으로 보이는데 관련된 예제들을 좀 작성해서 손과 머리에 익히는 연습이 필요하다.
---------------------------------------------------------------------------------------------------------------------------------------------------
번외로 Linq라는 것도 배웠는데 모양새가 코드 내에서 db 쿼리를 찾는 형식이다. 런타임 중에 리스트,배열 등의 메모리에서 찾고자 하는 데이터를 검색하는 기능이라는데, 게임 내의 구현보다는 모니터링 목적이나 디버깅 용으로 들어가는 경우가 있을 것 같다.
거기에 c#은 자료형 변수(int,float,cha)를 값형이라고 해서 null이 들어가지 않는다는데(보통은 0을 넣긴 하지만) 이를 가능하게 해주는 nullable이라는 자료형이 따로 있다고 한다. 각 자료형 뒤에 ?만 붙여주면 된다고 하는데(int? / float?) 매개변수로 넘기는 경우 값만 넘기는 경우가 많은지 아닌지를 판단해서 사용하게 될 것같다.
'[내일배움캠프 Unity 9기]' 카테고리의 다른 글
| 04/17 TextRPG 개인 과제 진행 (0) | 2025.04.17 |
|---|---|
| 04/16 TIL - C++ 생성자와는 다른 초기화 (0) | 2025.04.16 |
| 04/14 TIL ref/out과 hash set의 구조 (0) | 2025.04.14 |
| 04/11 TIL - C#의 가비지 컬렉터 (0) | 2025.04.11 |
| 04/10 TIL (0) | 2025.04.10 |