Lambda Expression(람다식)
개요
- 람다식은 무명 메서드를 단순한 계산식으로 표현한 것
- LINQ 쿼리 식을 작성하는데 유횽하다.
- => 연산자는 할당(=)과 우선 순위가 같고 오른쪽 "결합성"이 있다.
"결합성"이란?
- 우선 순위가 동일한 연산자 두 개 이상이 식 하나에 있으면 두 연산자의 결합성에 따라 연산 순서가 결정된다.
- 왼쪽 결합성이 있는 연산자는 왼쪽에서 오른쪽으로 계산됩니다. 예를 들어, x * y / z는 (x * y) / z로 계산된다.
- 오른쪽 결합성이 있는 연산자는 오른쪽에서 왼쪽으로 계산된다.
사용법
-
람다 연산자 => 왼쪽에 매개 변수를 지정, 오른 쪽에 식을 삽입
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 |