반응형
1. 델리게이트(Delegate)란?
C#에서 델리게이트는 특정 서명을 가진 메서드에 대한 참조를 나타내는 유형입니다. 유형 안전 함수 포인터로 생각할 수 있습니다. 델리게이트는 델리게이트 키워드 뒤에 메서드의 반환 유형과 메서드의 매개 변수를 사용하여 선언됩니다.
2. 델리게이트(Delegate)의 예제
다음은 델리게이트 선언의 예시입니다:
delegate int MyDelegate(string s);
문자열 매개변수를 받아 정수 값을 반환하는 MyDelegate라는 델리게이트를 선언합니다. 델리게이트가 선언되면 동일한 서명을 가진 모든 메서드를 참조하는 데 사용할 수 있습니다.
다음은 델리게이트를 사용하여 메서드를 참조하는 방법의 예시입니다:
class Program
{
static int MyMethod(string s)
{
return s.Length;
}
static void Main(string[] args)
{
MyDelegate del = new MyDelegate(MyMethod);
int result = del("Hello, World!");
Console.WriteLine(result); // Output: 13
}
}
이 예제에서는 문자열 매개변수를 받아 정수 값을 반환하는 MyDelegate라는 델리게이트를 선언합니다. 또한 델리게이트와 동일한 서명을 가진 MyMethod라는 메서드도 정의합니다. 그런 다음 새 키워드를 사용하여 델리게이트의 인스턴스를 생성하고 메서드 이름을 매개변수로 전달합니다. 마지막으로 문자열 매개변수를 사용하여 델리게이트를 호출하고 결과를 변수에 저장합니다.
3. 결론
델리게이트는 콜백을 생성하고 이벤트 중심 프로그래밍을 구현하는 데 유용합니다. 또한 객체의 유형에 따라 런타임에 메서드를 호출할 수 있는 동적 디스패치를 구현하는 데에도 사용할 수 있습니다.
반응형
'공부 > C#' 카테고리의 다른 글
코루틴(coroutines)이란? (0) | 2023.03.06 |
---|---|
이벤트(event)란? (0) | 2023.03.06 |
C#에서 Dictionary는 맵일까?, 해쉬 맵일까? (0) | 2023.03.05 |
컬렉션(Collection)의 종류 (0) | 2023.03.05 |
ref와 out 키워드의 개념 및 차이 (0) | 2023.03.05 |