C# 공부
lambda
Dev_Cat
2021. 8. 26. 19:28
728x90
반응형
Study about lambda
람다식 사용 예제
delegate int Calculate(int a, int b);
static void Main(string[] args)
{
Calculate calc = (int a, int b) => a + b;
Console.WirteLit($"{3} + {4} : {calc(3,4)}");
}
- anonymous function 만들기 위해 사용
- 무명함수는 람다식으로 만든 익명 메소드
- 매개_변수_목록 => 식
- => : 입력 연산자
식형식 문형식 람다식
delegate void DoSomething();
static void Main()
{
DoSomething DoIt = () =>
{
Console.WriteLine("what");
Console.WriteLine("print");
};
DoIt();
}
- 식 형식 : a+b or a==b
- 문 형식 : if(a==b) return 0;
Func와 Action으로 무명 함수 만들기
static void Main(string[] args)
{
// func delegate
// 입력 매개변수 없고, 무조건 10 반환
Func<int> func1 = () => 10;
Console.WriteLine(func1());
// 입력 매개변수는 int 형식 하나, 반환 형식도 int
Func<int, int> func2 = (x) => x*2;
Console.WirteLine(func2(3));
// action delegate
Action act1 = () => Console.WriteLine("Action()");
act1();
// 람다식 밖에 선언한 result에 x*x 값 저장
int result = 0;
Action<int> act2 = (x) => result = x*x;
act2(3);
Console.WriteLine("result: {0}", result);
Action<double, double> act3 = (x,y) =>
{
double pi = x/y;
Console.WriteLine("Action<T1,T2>({0},{1}) : {2}", x, y, pi);
};
act3(22.0, 7.0);
}
- 익명 메소드나 무명 함수를 만들기 위해 매번 delegate를 선언해야하는 걸 해결
- Func 대리자는 결과를 반환하는 메소드 참조
- Action 대리자는 결과를 반환하지 않는 메소드 참조
728x90
반응형