익명 함수를 간단하게 표현하는 방법

(int x) => x * x
형태 예시 설명
매개변수 1개 x => x + 1 한 줄이면 {}return 생략 가능
매개변수 여러 개 (x, y) => x + y 괄호로 묶기
본문이 여러 줄 (x) => { var y = x + 1; return y * 2; } 블록 필요
// 전체 예시
Func<int, int> square = x => x * x;
Func<int, int, int> sum = (a, b) => a + b;
Action<string> print = msg => Debug.Log(msg);

이벤트 바인딩

button.onClick.AddListener(() => Debug.Log("Clicked!"));

조건 검색 (LINQ)

var item = items.FirstOrDefault(x => x.id == 5);

필터링

var strongItems = items.Where(i => i.attack > 10).ToList();코루틴 내부 처리

코루틴 내부 처리

StartCoroutine(FadeOut(() => Destroy(gameObject)));

람다와 Delegate/Func/Action의 관계

타입 의미
Action 반환값이 없는 함수
Func<T1, TReturn> 인자 있고, 반환값 있는 함수
Predicate<T> Func<T, bool> 형태 (true/false 반환)

람다는 이 델리게이트 타입들에 자동으로 할당 가능함.