2013년 10월 25일 금요일

[닷넷강좌]C#4.0 람다식(Lambda Expression) - 개요, 람다식 예제 C#4.0 람다식(Lambda __EXPRESSION__) - 개요, 람다식 예제 람다식은 알론조 처치(Alonzo Church)라는 수학자가 발표한 람다 계산법에서 사용하는 식이며 이를 그의 제자 존 매카시가 프로그래밍 언어에 도입했는데 LISP이라는 언어로 발전 했습니다. C/C++/JAVA에서는 현재 지원하고 있지 않음(JAVA7애ㅔ서 지원하려 했으나 취소됨) :namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 람다식은 익명메소드(Anonymous Method)를 만들기 위해 사용하며, 다만 람다식으로 만든 익명 메소드는 무명함수(Anonymous Function)이라고 부른다. MS는 델리게이트를 이용한 익명 메소드를 C#2.0에서 도입했는데 람다식은 C#3.0이후에 도입되었다. 아마도 람다식을 사용하는 것이 익명 메소드를 만들 때 용이할 것 이다. [형식] 매개변수목록 => 식 ‘=>’연산자는 입력 연산자로서 매개변수를 전달하는 의미, =>를 중심으로 왼쪽에 매개변수가 오른쪽에 식이 위치한다. 람다식 예문을 보기 전에 델리게이트를 이용하여 익명 메소드를 구현하면… delegate int Calc(int a, int b); …… …… //두개의 매개변수 a,b를 입력받아 그 합을 리턴하는 익명 메소드를 람다식으로 만듬 static void Main(string[] args) { Calc calc = delegate(int a, int b) { return a+b; }; } 이번엔 람다식을 이용한 예문을 보자. 먼저 익명 메소드를 위해 델리게이트를 선언 delegate int Calc(int a, int b); …… …… //두개의 매개변수 a,b를 입력받아 그 합을 리턴하는 익명 메소드를 람다식으로 만듬 static void Main(string[] args) { Calc calc = (int a, int b) => a+b; } C# 컴파일러에서는 위 코드를 더 간결하게 “형식 유추(Type Inference)”라고 해서 매개변수의 형식을 제거할 수 있다.(델리게이트의 선언 코드로부터 형식을 유추함) delegate int Calc(int a, int b); … … Calc calc = (a, b) => a+b; [람다식 예제] using System; namespace Lambda { class Program { delegate int Calc(int a, int b); static void Main(string[] args) { Calc cal = (a, b) => a + b; int sum = cal(1, 2); Console.WriteLine("1+2=" + sum); } } } [결과] 1+2=3 [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecCsharp&wr_id=108 [개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr) [주말] [11/2]C#,ASP.NET마스터 [11/2]Spring3.X, MyBatis, Hibernate실무과정 [11/2]JAVA&WEB프레임워크실무과정 [평일야간] [10/29]C#,ASP.NET마스터 [10/31]JAVA&WEB프레임워크실무과정 [11/1]Spring3.X, MyBatis, Hibernate실무과정 [주간] [11/4]Spring3.X, MyBatis, Hibernate실무과정 [기타 다른 강좌는 아래 해당 카테고리를 클릭해주세요] JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스

[닷넷강좌]C#4.0 람다식(Lambda Expression) - 개요, 람다식 예제 

C#4.0 람다식(Lambda __EXPRESSION__) - 개요, 람다식 예제
 
람다식은 알론조 처치(Alonzo Church)라는 수학자가 발표한 람다 계산법에서 사용하는 식이며 이를 그의 제자 존 매카시가 프로그래밍 언어에 도입했는데 LISP이라는 언어로 발전 했습니다. C/C++/JAVA에서는 현재 지원하고 있지 않음(JAVA7애ㅔ서 지원하려 했으나 취소됨)
:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 
람다식은 익명메소드(Anonymous Method)를 만들기 위해 사용하며다만 람다식으로 만든 익명 메소드는  무명함수(Anonymous Function)이라고 부른다. MS는 델리게이트를 이용한 익명 메소드를 C#2.0에서 도입했는데 람다식은 C#3.0이후에 도입되었다.  아마도 람다식을 사용하는 것이 익명 메소드를 만들 때 용이할 것 이다.
 
[형식]
 
매개변수목록 => 
 
=>연산자는 입력 연산자로서 매개변수를 전달하는 의미, =>를 중심으로 왼쪽에 매개변수가 오른쪽에 식이 위치한다.
 
람다식 예문을 보기 전에 델리게이트를 이용하여 익명 메소드를 구현하면
 
delegate int Calc(int a, int b);
……
……
//두개의 매개변수 a,b를 입력받아 그 합을 리턴하는 익명 메소드를 람다식으로 만듬
static void Main(string[] args) {
             Calc calc = delegate(int a, int b)
                    {
                       return a+b;
                    };
}
 
 
이번엔 람다식을 이용한 예문을 보자먼저 익명 메소드를 위해 델리게이트를 선언
 
delegate int Calc(int a, int b);
……
……
//두개의 매개변수 a,b를 입력받아 그 합을 리턴하는 익명 메소드를 람다식으로 만듬
static void Main(string[] args) {
             Calc calc = (int a, int b) => a+b;
}
 
 
 
C# 컴파일러에서는 위 코드를 더 간결하게 형식 유추(Type Inference)라고 해서 매개변수의 형식을 제거할 수 있다.(델리게이트의 선언 코드로부터 형식을 유추함)
 
delegate int Calc(int a, int b);
Calc calc = (a, b) => a+b;
 
[람다식 예제]
 
 
using System;
 
namespace Lambda
{
    class Program
    {
        delegate int Calc(int a, int b);
 
        static void Main(string[] args)
        {
            Calc cal = (a, b) => a + b;
            int sum = cal(1, 2);
            Console.WriteLine("1+2=" + sum);
        }
    }
}
[결과]
1+2=3

댓글 없음:

댓글 쓰기