프로그래밍/C#

C# Func 과 Action

우대비 2022. 7. 6. 14:48
반응형

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