posted by 방랑군 2012. 1. 17. 20:56

출처 :  http://blog.naver.com/PostView.nhn?blogId=rintiantta&logNo=40115460090&categoryNo=59&viewDate=&currentPage=2&listtype=0&from=postList&userTopListOpen=true&userTopListCount=5&userTopListManageOpen=false&userTopListCurrentPage=2


어쨌건, 시작합니다. ㅎㅎ

프로젝트를 만들어주세요 ㅇㅅㅇ .. !
 


 

아래가 람다입니다. ㅇㅅㅇ

"헐킈, 먼가요 저게 ?"

『=>』요게 들어가면 람다입니다. 

 

『간단하게 x 라는 인수를 x*x 로 리턴한다는 뜻입니다.』

 

 

실행 한번 해보죠 ㅎㅎ

 

 

100 이 출력 되는 것을 볼 수 있습니다.

 

 

지금.. 제 생각에는..

"아놔, 리턴도 안 했는데, 뭐 위의 결과가 뜹니까?!" 하시는 분이 있을텐데요.

 

아래와 같이 return 을 써주셔도 됩니다 .ㅎㅎ

간단하게 X => Y 로 되어있는 람다식에서는 X 가 파라메터, Y 가 리턴값이 됩니다. >_<

 

 

아래와 같이 여러개를 넣을 수도 있지요 >_<

 

 

결과입니다. ㅎㅎ

 

 

근데 만약 파라메터가 2개라면... >_<

 

 

아래와 같이 해주시면 됩니다 .ㅇㅅㅇ...

무지 짧죠 ?

 

『귀차니즘의 역사』라고 말한 이유가 이것입니다.

점점점점점 짧아지죠... ㅎㅎ

 

 

그럼 이걸 어디다 쓰는지는 봐야죠 ㅇㅅㅇ...

그리고, 가끔 『=>』이게 나오면 "허걱... 이건 머임.." 하고 놀라시는 분이 있으시니, 조금 활용해보도록합시다. ㅎㅎ

 

우선 리스트에 Where 이라는 메서드가 있습니다.

조건에 맞는 녀석들을 뽑아서 다시 배열로 만들어주시는 분입니다.

 

보시면 파라메터로 Func<string, bool> predicate 를 달라고 하는데요.

뭔 개소리일까요 ㅇㅅㅇ ....

<string, bool> 의 뜻은 대충 『string을 박으면 bool 로 나오는 녀석』이라는 뜻입니다.

 

여기에, 리턴값이 bool 이고 파라메터가 string 인 메서드의 이름을 넣으셔도 됩니다.

근데, 길죠 ㅇㅅㅇ... 귀찮구 >_<

 

 

아래와 같이 람다식을 넣었습니다.

data 가 'A' 라는 글자를 가지고 있으면 true 를 리턴하게 되는 식입니다.

"아니, 왜 true 를 리턴하죠 ?!"

『Contains() 메서드는 맞으면 True 를 리턴하니까요 ㅇㅅㅇ』

 

자, 무지 짧아졌죠?

메소드 만들기는 『귀찮』으니까요 ... !

 

 

출력하시면 『1』이 나오겠지요 ~_~ ?

음... 결과 스크린샷을 찍었는데.... 없어졌네엥.. ;ㅁ;

 

 

어쨌건, 이번에는 MSDN 에 나오는 예제를 봅시다.

아래와 같이 썼어요.

 

Count() 메서드의 두번째 오버로딩 되는 녀석입니다.

위와 마찬가지로 해석하면요.

『int 를 박으면 bool 이 나오는 함수를 주렴 >_<』 이라는 뜻입니다.  

 

 

메서드 만들기는 귀찮죠 ... ?

아래와 같이 람다식을 박으시면 됩니다. ㅇㅅㅇ...

 

 

람다식은 일단 연습해보는 것이 제일 좋습니다. ㅇㅅㅇ

많은 연습이 제일 중요하죠.

연습하면, 메소드를 만들어야하는 귀찮은 녀석들을 위와 같이 간단간단 20글자 내외로 끝낼 수 있습니다.

 

자, 그럼 ㅇㅅㅇ ...

C# Basic 강의 종강입니다. ㅎㅎ

괜히 마지막을 Delegate 으로 잡아서 끝을 못 내드리고 똥 안 닦고 나온 기분을 연출시켜드려 죄송합니다. ;ㅁ;

딜리게이트는 Windows Forms 강의에서나 다시 보실 수 있게 될겁니다. ;ㅁ;

 

끝 ㅎㅎ ... !

'강좌 > C#' 카테고리의 다른 글

TCP/IP Socket with C#  (0) 2012.01.18
델리게이트 선언뒤에 할당  (0) 2012.01.18
C# 람다식  (0) 2012.01.17
람다식(Lambda Expression)  (0) 2012.01.17
매소드를 인수로 넘기기..  (0) 2012.01.17