'무명메서드'에 해당되는 글 1건

  1. 2021.07.23 C# - 무명메서드 람다식

C# - 무명메서드 람다식

C# 2021. 7. 23. 12:21
728x90


무명 메서드는 한 번만 사용할 간단하고 짧은 메서드를 만드는 방법

형식은 delegate( [ 매개 변수 목록]) {구현부}


무명 메서드를 매개 변수로 메서드에 전달할 수도 있다.


무명 메서드의 장점

메서드 이름을 부여하지 않으므로 1회용 메서드에 적합

논리를 구현하는 코드를 실제로 사용하는 곳에 작성 가능

무명메서드를 할당할 대리자의 시그니처로부터 유추가 가능해서 무명메서드 선언 시 반환 형식이 필요 없다

무명메서드를 감싸고 있는 외부 메서드의 지역 변수를 참조할 수 있다.

간단한 논리 구현을 위해 매번 명명(이름 부여)된 메서드를 만들 필요가 없다


c# 3.0부터는 더욱 쉽게 무명 메서드를 만들수 있도록 람다식을 도입했다.

형식은 ([매개 변수]) => 식;


람다식을 이용해서 무명메서드를 작성하게 되면 더욱 코드가 간결해 질 수 있다.


c#에서는 클래스를 이용해서 다른 객체에 무엇인가 발생했음을 알릴 수 있는데 이것을 이벤트라고 한다.


게시자가 이벤트를 보내면 구독자가 수신하는 구조다, 이벤트를 처리할때 람다식을 이용할 수 있다.


event 키워드는 클래스 사용자들이 +=, -= 연산자를 이용해서 이벤트를 구독하는 것만 허용함으로써 클래스를 이용하는 사용자가 잘못 할당하거나, 멋대로 이벤트를 발생시키는 것을 제약할 수 있다.

event 키워드를 이용하면 람다식을 할당할 때 =은 사용이 불가능하다.

그래서 대리자에 잘못할당하는 경우를 막을수 있다.


event 키워드를 이용하면 해당 이벤트를 정의하고있는 클래스 내부에서만 접근이 가능하고 외부에선 접근이 불가능 하다.


action 대신 event 에 사용할수 있는 EventHandler를 사용할수 있다.

EventHandler 클래스는 발신자(sender) 개체와 이벤트 인수(e)을 필요로 한다.


함수형 프로그래밍에서 람다식이 갖는 강점으로는

퍼스트 클래스 함수 - 람다식을 매개 변수로 전달하거나, 함수의 반환값 등으로 사용할 수 있다

클로저 - 람다식을 이용하면 함수 외부의 지역변수를 람다식으로 구현한 함수 내에서 값을 지속적으로 유지하게 함으로써 클로저 개념을 적용할 수 있다

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침