본문 바로가기
개발/C#

C++의 lambda와 C#의 delegate의 차이

by 사과잼빵 2018. 2. 21.

C++에서는 lambda를 이용해 익명 메서드를 구현 할 수 있고 C#에서는 delegate를 이용해 익명 메서드를 구현 할 수 있다.

- lambda로 구현된 익명 메서드(C++)는 컴파일 시 해당 메서드가 인라인화되어 해당 코드로 치환된다. (함수 호출 시 소모되는 비용을 절약할 수 있게됨)

- delegate로 구현된 익명 메서드(C#)는 컴파일 시 중복되지 않을 특별한 문자열의 이름을 가지는 메서드가 생성 되어 해당 메서드를 호출 하는 식으로 코드가 치환된다. 

따라서 delegate로 구현된 익명 메서드는 간편 표기 구문에 불과하며 성능상 이점은 없어 보인다.

'개발 > C#' 카테고리의 다른 글

Boxing UnBoxing  (0) 2015.10.06