이것이 C#이다(Chapter 13-2 이벤트) ★★★★★

2026. 5. 1. 03:19·C#/Study

참고

더보기

2026.04.06 - [C#/Study] - 이것이 C#이다(Chapter 13-1 대리자) ★★★★★

 

이것이 C#이다(Chapter 13-1 대리자) ★★★★★

중요도 기준(★ ~ ★★★★★) 1. 대리자란? : ★★★- 메소드 참조를 통해 해당 메소드의 호출 권한을 가지며, 다른 곳에서 대리자를 호출시 참조하고 있는 메소드들을 실행하는 키워드- 메소드

marin0806.tistory.com

> 13-1 참고(대리자)


1. 이벤트란 ? : ★★★★

- 대리자를 기반으로 하여 함수를 대리자 객체에 저장 또는 해제하여 사용하되, 호출 자체는 내부에서만 가능하도록 한 것을 의미함.


2. 대리자와의 비교

1) 대리자

public delegate void MyDelegate();

MyDelegate del = SomeMethod; // 메서드 추가
del(); // 어디서든 직접 호출 가능

> 외부사용 가능(어디서든 호출 가능)

 

2) 이벤트

더보기

1. 외부사용 불가

Publisher pub = new Publisher();

pub.OnMessage("TEST"); // 불가능

 

2. 등록 및 해제 가능

public class Subscriber
{
    public void Handler(string msg)
    {
        Console.WriteLine(msg);
    }
}

> 외부 클래스의 멤버 메서드

Publisher pub = new Publisher(); // 이벤트 핸들러 객체
Subscriber sub = new Subscriber(); // 내부 등록자 객체

pub.OnMessage += sub.Handler; // OnMessage 라는 이벤트에 Handler 메서드 등록
pub.OnMessage -= sub.Handler; // 해제

> 등록 및 해제

 

2.1 사용

pub.SendMEssage("HELLO");
// SendMessage 가 실행되고, 내부의 Invoke(Event 호출) 함수 호출
// 이벤트 실행 > 구독된 함수(Handler) 실행됨

3. 핵심

> 이벤트는 대리자와 유사하지만 외부에서 직접 사용할 수 없고, 이벤트 발생시 구독된 메서드가 차례대로 실행되는 메커니즘을 가지고 있다.

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

이것이 C#이다(Chapter 15. LINQ) ★★★★  (0) 2026.04.25
이것이 C#이다(Chapter 13-1 대리자) ★★★★★  (0) 2026.04.06
'C#/Study' 카테고리의 다른 글
  • 이것이 C#이다(Chapter 15. LINQ) ★★★★
  • 이것이 C#이다(Chapter 13-1 대리자) ★★★★★
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
이것이 C#이다(Chapter 13-2 이벤트) ★★★★★
상단으로

티스토리툴바