Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

익명 메서드와 람다식 본문

프로그래밍 언어/C#

익명 메서드와 람다식

야식은진리다 2020. 5. 6. 00:05

익명 메서드

익명 메서드는 이름이 없는 메서드이다. 이름이 없기때문에 기본적으로 대리자에 참조시키기 위한 용도로 자주 쓰인다.

만일 아래와 같은 대리자가 있다면,

1
delegate int Calculate (int a, int b);

대리자는 delagate 키워드를 이용해서 선언한다. 대입할 대리자의 형식과 동일한 형식으로 선언되어야한다.

1
2
3
4
Calculate cal = delegate (int a, int b)
    {
        return a+b;
   }

위 코드처럼 사용하고, 이후 cal(1,2);를 호출하면 3이 반환된다.

 

 

람다식

람다식은 익명메서드를 만드는 하나의 방법이다. 다만 람다식으로 만드는 익명 메서드는 무명함수라는 이름으로 불린다.

기본적인 람다식(식 형식)을 선언하는 형식은 다음과 같다.

1
(매개변수목록) => 식;

=> 연산자는 "입력" 연산자로써 매개변수를 전달하는 역할을 한다. 그래서 람다식은 =>를 중심으로 왼쪽에는 매개변수가, 오른편에는 식이 위치한다.

 

문 형식의 람다식은 => 연산자의 오른편에 식 대신 {와}로 둘러싸인 코드 블럭이 위치하는 람다식으로써 다음과 같이 선언한다.

1
2
3
(매개변수목록) => {
    //...
}

 

Func와 Action

람다식과 익명 메서드를 사용할때는 대리자가 필요하다. 이것이 번거로운 작업이므로 .NET 프레임워크에 Func와 Action대리자가 미리 선언 되어있다. Func는 결과를 반환하는 메서드를 참조하고, Action는 결과를 반환하지 않는 메서드를 참조한다.

'프로그래밍 언어 > C#' 카테고리의 다른 글

async한정자와 await 연산자로 만드는 비동기 코드  (0) 2020.05.06
Task와 Task<TResult>그리고 Parallel  (0) 2020.05.06
이벤트 event  (0) 2020.05.05
대리자  (0) 2020.05.05
프로세스와 스레드 / 동기화  (0) 2020.05.05