-
[C#] delegate와 람다식Development/C# 2023. 8. 28. 20:32728x90
델리게이트(delegate)는 프로그래밍에서 특정한 기능을 수행하기 위해 다른 메서드를 참조하고 호출하는 데 사용되는 개념입니다.
델리게이트는 일종의 메서드 포인터 또는 메서드를 가리키는 참조 변수로 생각할 수 있습니다. 다른 말로는 "메서드 혹은 함수를 참조하는 타입"이라고도 합니다. 델리게이트를 사용하면 메서드를 다른 메서드의 인수로 전달하거나, 메서드를 변수에 할당하거나, 메서드를 이벤트 처리기로 사용할 수 있습니다.
델리게이트의 기본 구조는 다음과 같습니다:delegate 반환타입 델리게이트이름(매개변수);
- `반환타입`: 델리게이트가 가리키는 메서드의 반환 타입을 지정합니다.
- `델리게이트이름`: 델리게이트의 이름을 정의합니다.
- `매개변수`: 델리게이트가 가리키는 메서드의 매개변수 목록을 정의합니다.
델리게이트를 선언한 후에는 해당 델리게이트 타입의 변수를 만들어 다른 메서드를 할당할 수 있습니다. 이렇게 하면 해당 델리게이트 변수를 호출함으로써 할당된 메서드가 실행됩니다.
델리게이트의 사용 예시:// 델리게이트 선언 delegate int Calculate(int a, int b); // 델리게이트에 메서드 할당 Calculate addDelegate = AddNumbers; Calculate subtractDelegate = SubtractNumbers; // 할당된 메서드 실행 int result1 = addDelegate(5, 3); // AddNumbers 메서드 호출 int result2 = subtractDelegate(8, 2); // SubtractNumbers 메서드 호출 // 델리게이트를 이용하여 계산하는 메서드 static int AddNumbers(int a, int b) { return a + b; } static int SubtractNumbers(int a, int b) { return a - b; }
람다식 변환 예시:
// 델리게이트 대신 람다식 사용 Func<int, int, int> addDelegate = (a, b) => a + b; Func<int, int, int> subtractDelegate = (a, b) => a - b; // 람다식으로 계산 int result1 = addDelegate(5, 3); // 람다식으로 덧셈 계산 int result2 = subtractDelegate(8, 2); // 람다식으로 뺄셈 계산
728x90'Development > C#' 카테고리의 다른 글
[C#] 순환참조 (0) 2023.08.16 [프렉티컬 C#] 날짜와 시간 처리 (0) 2023.07.28 [C#] 인덱서 (0) 2023.07.27 [프렉티컬 C#] Dictionary (0) 2023.07.27 [프렉티컬 C#] 배열과 List<T> (0) 2023.07.26