반응형
Func와 Action는 전체적으로 굉장히 비슷함
둘의 차이는 반환이 있느냐 없느냐의 차이.
Func<T1, T2, T3...... T10>는 마지막 인자를 제외한 값들을 인수로 보내고, 마지막 인자는 반환값으로 돌려받음
Func<GameObject, bool> condition = returnBool;
_target = Managers.Object.Find(condition);
bool returnBool(GameObject go)
{
PlayerController pc = go.GetComponent<PlayerController>();
if (pc == null)
return false;
Vector3Int dir = (pc.CellPos - CellPos);
if (dir.magnitude > _searchRange)
return false;
return true;
}
public GameObject Find(Func<GameObject, bool> condition)
{
foreach (GameObject obj in _objects)
{
if (condition.Invoke(obj))
return obj;
}
return null;
}
그래서 도대체 언제, 어떻게 활용하는거냐면
Action을 써서 메소드를 호출하는데 뭐가 좀 반환이 됐으면 좋겠다~? 그럼 Func 쓰면됨
반응형
LIST
'프로그래밍 > C#' 카테고리의 다른 글
C# 가비지 컬렉터(GC) (0) | 2025.05.13 |
---|---|
백준 C# 속도 개선 (0) | 2025.04.21 |