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# 람다 식 사용
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727) N
      • 스마트팜 (1) N
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18) N
      • 일기장 (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)
  • 인기 글

  • 태그

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

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

티스토리툴바