본문 바로가기

Programming/C#

C# Lamda

Lambda Expression(람다식)

개요

  • 람다식은 무명 메서드를 단순한 계산식으로 표현한 것
  • LINQ 쿼리 식을 작성하는데 유횽하다.
  • => 연산자는 할당(=)과 우선 순위가 같고 오른쪽 "결합성"이 있다.

"결합성"이란?

  1. 우선 순위가 동일한 연산자 두 개 이상이 식 하나에 있으면 두 연산자의 결합성에 따라 연산 순서가 결정된다.
  2. 왼쪽 결합성이 있는 연산자는 왼쪽에서 오른쪽으로 계산됩니다. 예를 들어, x * y / z는 (x * y) / z로 계산된다.
  3. 오른쪽 결합성이 있는 연산자는 오른쪽에서 왼쪽으로 계산된다. 

사용법

  • 람다 연산자 => 왼쪽에 매개 변수를 지정, 오른 쪽에 식을 삽입

public class Lamda
    {  
       public delegate int LamdaDelegate(int operandA, int operandB);
      
        //람다식을 사용한 델리게이트와 사용하지 않은 델리게이트
        //람다식을 사용했을때 코드가 간결해지는 것을 볼 수 있다.
       public LamdaDelegate nonLamdaAdd = delegate(int nonLamdaOperandA, int nonLamdaOperandB)
           {
               return (nonLamdaOperandA + nonLamdaOperandB);
           };
       public LamdaDelegate lamdaAdd = (lamdaOperandA, lamdaOperandB) => lamdaOperandA + lamdaOperandB;
 
 
       public int LamdaCalculator(int operandA, int operandB, LamdaDelegate inputDeligate)
       {
           return inputDeligate(operandA, operandB);
       }
    }
 
[TestClass]
    public class LamdaTest
    {
        [TestMethod]
        public void LamdaTestMethod()
        {
            int nonLamdaResult;
            int lamdaResult;
 
            Lamda lamdaTest = new Lamda();
 
            lamdaResult = lamdaTest.LamdaCalculator(32,12,lamdaTest.lamdaAdd);
            nonLamdaResult = lamdaTest.LamdaCalculator(32, 12,lamdaTest.nonLamdaAdd);
 
            Assert.AreEqual(lamdaResult,nonLamdaResult);
        }
    }

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

C# Anonymous Type  (0) 2016.02.25
C# Yield  (0) 2016.02.25
C# Partial Type  (0) 2016.02.18
C# NullType  (0) 2016.02.18
C# Anonymous Method  (0) 2016.02.18