C# Delegate : 대리자

2023. 3. 28. 19:12·C#
반응형

소개

C#에서 대리자(delegate)는 메서드를 참조하는 개체입니다. 대리자는 메서드를 다른 메서드에 전달하거나 이벤트 처리를 위해 사용됩니다. 이번 글에서는 C# 대리자에 대해 자세히 살펴보겠습니다.


대리자란?

대리자는 메서드를 참조하는 개체입니다. 대리자를 사용하면 메서드를 다른 메서드에 전달할 수 있습니다. 이는 이벤트 처리에 매우 유용합니다. 대리자는 델리게이트(delegate) 키워드를 사용하여 선언됩니다.


대리자의 예

다음은 대리자의 간단한 예입니다.

delegate int Calculate(int x, int y);

위의 예제에서 Calculate 대리자는 int 형식의 x와 y 매개 변수를 사용하는 메서드를 참조합니다. Calculate 대리자는 int 형식의 값을 반환하는 메서드를 참조해야 합니다.


대리자의 사용

대리자는 메서드를 다른 메서드에 전달하는 데 사용됩니다. 이는 이벤트 처리에 매우 유용합니다. 대리자를 사용하여 이벤트 처리기를 등록하면 이벤트가 발생할 때마다 등록된 이벤트 처리기가 호출됩니다. 다음은 대리자를 사용하여 이벤트 처리기를 등록하는 예입니다.

public delegate void EventHandler(object sender, EventArgs e);

public class Button
{
    public event EventHandler Click;

    public void OnClick()
    {
        if (Click != null)
        {
            Click(this, EventArgs.Empty);
        }
    }
}

위의 예제에서 Button 클래스는 Click 이벤트를 정의합니다. Click 이벤트는 EventHandler 대리자를 사용하여 선언됩니다. Button 클래스의 OnClick() 메서드는 Click 이벤트를 발생시킵니다.


대리자의 장점

대리자를 사용하면 메서드를 다른 메서드에 전달할 수 있습니다. 이는 이벤트 처리에 매우 유용합니다. 대리자를 사용하여 이벤트 처리기를 등록하면 이벤트가 발생할 때마다 등록된 이벤트 처리기가 호출됩니다.


결론

C# 대리자는 메서드를 참조하는 개체입니다. 대리자를 사용하면 메서드를 다른 메서드에 전달하거나 이벤트 처리를 위해 사용할 수 있습니다. 대리자를 사용하면 코드의 유연성이 향상되고 이벤트 처리가 간단해집니다. 이번 글을 통해 C# 대리자에 대해 더욱 자세히 알아보았습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# 객체지향 다형성 : new, virtual, override, sealed  (0) 2023.03.30
C# 정규표현식  (0) 2023.03.29
C# Dictionary ContainsKey() vs TryGetValue()  (1) 2023.03.28
C# 람다 식 사용  (0) 2023.03.14
C# 딕셔너리 [Dictionary] 사용 방법  (0) 2023.03.13
'C#' 카테고리의 다른 글
  • C# 객체지향 다형성 : new, virtual, override, sealed
  • C# 정규표현식
  • C# Dictionary ContainsKey() vs TryGetValue()
  • C# 람다 식 사용
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    unity
    유니티
    라떼우유
    programmerlife
    C#
    상품 리뷰 크롤링
    codingtips
    카페24리뷰이관
    스크립트 실행
    리뷰관리
    스마트스토어리뷰
    쇼핑몰리뷰
    cv2
    긴유통기한우유
    스크립트 실행 순서
    devlife
    셀레니움
    list
    appdevelopment
    리스트
    Python
    리뷰이관
    programming101
    ipcamera
    믈레코비타멸균우유
    카페24리뷰
    learntocode
    파이썬
    codingcommunity
    rtsp
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C# Delegate : 대리자
상단으로

티스토리툴바