이번 글에서는 익명함수에 대해서 알아보겠습니다. 익명함수(Anonymous Function)는 이름이 없는 함수로, 일반적으로 델리게이트(Delegate)를 통해 사용됩니다. 코드의 일부분으로 함수를 선언하고 사용할 수 있는 유연한 개념입니다. C#에서는 람다식(Lambda Expression)이라는 형태로도 사용됩니다. 이러한 익명 함수는 간단한 로직이나 짧은 코드 블록을 함수로 간단히 정의하고 사용할 때 매우 유용합니다.
익명함수의 구조
1. 기본 구조
delegate (parameter_list) {
// 함수의 실행 내용
};
여기서 'delegate' 키워드를 사용하여 코드 블록을 정의하고, 해당 델리게이트의 인스턴스를 만듭니다.
2. 람다식 구조
(parameter_list) => expression
람다식과 익명 함수의 관계
람다 식은 익명 함수를 더 간결하게 표현하는 방법 중 하나로, 람다식을 통해 익명 함수를 더 짧게 표현할 수 있습니다.
사용예시
아래는 델리게이트를 이용하여 익명 함수를 사용하는 예시입니다.
// 델리게이트 선언
delegate int MyDelegate(int x, int y);
class Program
{
static void Main(string[] args)
{
// 익명 함수를 델리게이트에 할당
MyDelegate add = delegate (int a, int b) {
return a + b;
};
Console.WriteLine(add(3, 4)); // 출력 결과: 7
}
}
위의 코드에서 'MyDelegate'는 'int'타입을 반환하는 델리게이트를 선언합니다. 'add' 델리게이트에는 두 개의 정수를 더하는 익명 함수가 할당되어 있습니다.
아래 예시는 간단한 두 수를 더하는 익명 함수입니다. 또한, 변수명을 변경하고 반환문을 사용하여 결과를 반영합니다.
Func<int, int, int> add = delegate (int a, int b) {
int result = a + b; // 변수명 변경: sum → result
return result; // 반환문을 사용하여 결과 반환
};
Console.WriteLine(add(5, 3)); // 출력 결과: 8
람다식을 사용한 예시
람다식을 사용하여 위의 예시를 더 간단하게 표현할 수 있습니다.
// 람다식을 이용하여 델리게이트에 할당
MyDelegate multiply = (x, y) => x * y;
Console.WriteLine(multiply(4, 5)); // 출력 결과: 20
람다식을 이용하면 간결한 코드로 함수를 정의하고 사용할 수 있습니다. 이러한 기능은 코드를 간소화 하고 가독성을 높이는 데 도움이 됩니다.
사용하는 이유
익명 함수와 람다식의 사용 이유는 다음과 같습니다.
1. 간결한코드
익명 함수와 람다식은 짧고 간결한 코드로 함수를 정의하여 가독성을 높입니다.
2. 콜백 함수로의 사용
이벤트 핸들러나 LINQ 쿼리 등에서 콜백 함수로 사용되어 간단한 로직을 처리합니다.
3. 익명성
이름이 없기 때문에 일회성 작업이나 해당 코드 블록에서만 사용할 때 편리합니다.
4. 람다식과의 관계
람다식은 익명 함수의 한 형태로, 람다식이 더 간결한 방법으로 익명 함수를 표현합니다.
람다식은 익명 함수를 더 간단하게 더 간단하게 표현하는 방식이며, 익명 함수와 람다식은 간단한 함수 로직을 표현하고 사용하는 데 유용한 기능입니다. 익명 함수와 람다식은 주로 코드를 간결하게 만들고, 일회성 로직을 처리할 때 사용됩니다.
익명함수는 코드 블록을 직접 변수에 할당하거나 함수의 매개변수로 전달함으로써 코드의 재 사용성을 높이고, 이를 통해 반복적이고 간단한 작업을 보다 효율적으로 처리할 수 있습니다.
'C#' 카테고리의 다른 글
[C#] 클래스와 객체 (0) | 2023.12.22 |
---|---|
[C#] 람다함수 (0) | 2023.12.22 |
[C#] 재귀함수 (0) | 2023.12.21 |
[C#] 사용자 정의 함수 (0) | 2023.12.21 |
[C#] 함수의 종류 (0) | 2023.12.21 |