2023.02.28 - [C# 프로그래밍] - [C#] 익명 메소드와 람다식
[C#] 익명 메소드와 람다식
2023.02.27 - [C# 프로그래밍] - [C#] 대리자(Delegate) [C#] 대리자(Delegate) C#에서 대리자는 콜백(Callback)을 구현하기 위해 사용됩니다. 콜백이란 어떤 일을 해줄 코드를 만들고, 이 코드가 실행할 이벤트
onesside-world.tistory.com
익명 메소드와 무명 함수(람다식)은 코드를 보다 간결하게 만들어주는 요소들입니다.
하지만, 단 하나의 익명 메소드나 무명 함수를 만들기 위해 매번 별개의 대리자를 선언해야 합니다.
이것은 너무 번거롭습니다.
이 문제를 해결하기 위해 .NET 프레임워크에는 Func와 Action 대리자를 미리 선언되어있습니다.
Func 대리자는 결과를 반환하는 메소드를 참조하기 위해.
Action 대지라는 결과를 반환하지 않는 메소드를 참조하기 위해.
이제 사용법을 봐보겠습니다.
1. Action 대리자
Action은 반환 값이 없고 최대 16개의 매개 변수를 사용하는 메서드를 나타내는 대리자 형식입니다.
반환 값이 없는 메서드를 호출해야 할 때 일반적으로 사용됩니다.
예를 들어, Action 대리자를 사용하여 정수 매개변수를 받아 콘솔에 출력하는 메서드를 정의할 수 있습니다.
Action<int> printNumber = (number) => Console.WriteLine(number);
printNumber(42); // 결과: 42
또는 간단하게 콘솔만 출력할수도 있습니다.
Action writeMessage = () => Console.WriteLine("Hello, World!");
writeMessage(); // 결과: Hello, World!
2. Func 대리자
Func는 값을 반환하고 최대 16개의 매개 변수를 사용하는 메서드를 나타내는 대리자 형식입니다.
목록을 필터링하거나 일부 입력을 기반으로 결과를 계산하는 것과 같이 값을 반환하는 일부 작업을 수행해야 할 때 일반적으로 사용됩니다.
예를 들어 Func 대리자를 사용하여 정수 매개 변수를 사용하고 숫자가 짝수인지 홀수인지 나타내는 부울 값을 반환하는 메서드를 정의할 수 있습니다
Func의 마지막 매개변수는 반환 형식입니다.
Func<int, bool> isEven = (number) => number % 2 == 0;
Console.WriteLine(isEven(42)); // 결과: True
.또는 메서드 인수로 Func를 사용할수도 있습니다.
void PrintResult(Func<int> getResult)
{
int result = getResult();
Console.WriteLine(result);
}
Func<int> getNumber = () => 42;
PrintResult(getNumber); // 결과: 42
'C# 프로그래밍' 카테고리의 다른 글
[C#] task (2) (0) | 2023.03.27 |
---|---|
[C#] Task (1) (1) | 2023.03.27 |
[C#] 스레드 사용법(2) (0) | 2023.03.14 |
프로세스와 스레드에 대한 이론 정리글(2) (0) | 2023.03.13 |
[C#] 스레드 사용법(1) (0) | 2023.03.13 |