공부/C#

델리게이트(Delegate)란?

셩잇님 2023. 3. 5. 23:04
반응형

 

 

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