- 다른 메소드의 매개변수로 전달한 다음 그 메소드 내에서 실행하는 일종의 루틴이나 작업을 완료하는 과정이다.
예시
delegate void CALLBACK_FUNC(string _str); public void printLog(string _str) { Debug.Log(_str); } public void Callback(CALLBACK_FUNC _func) { _func("Done"); } public void Main() { CALLBACK_FUNC func = printLog; Callback(func); }
출력 : Done
- 익명함수 또는 람다식이라고도 한다.
- 함수의 이름이 없으므로 프로그램에서 호출하여 사용이 불가능하다.
- 식 람다와 문 람다 두가지가 있으며 아래와 같은 형식을 가진다.
(input-parameters) => expression; // 식 람다
(input-parameters) => { <sequence-of-statements> }; // 문 람다
- 매개변수가 없으면 input-parameters에 아무것도 작성하지 않고 괄호만 작성한다. () => {};
- input-parameters는 모두 명시적이거나 암시작이어야 한다.
- expression을 중괄호에 감싸지 않는 형식을 가진다.
- 식에대한 결과를 반환한다.
- 중괄호를 사용한다는 점을 제외하고는 식 람다와 비슷하다.
async나 await 키워드를 사용하여 비동가 처리를 하는 람다 식과 문을 쉽게 만들 수 있다.