Riucc's Storage
RSS
태그
관리
쓰기
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
Riucc's Storage

[C#] - 이벤트(event), 이벤트 핸들러(EventHandler)

C#|2019. 4. 8. 23:30
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

○ 이벤트(event), 이벤트 핸들러(EventHandler)

 

- event(이벤트)

     특정 상황이 발생했을 때, 알리고자 하는 용도(호출 + 데이터)

     델리게이트를 기반으로 한다(메소드 호출, 메소드에 집중)

     이벤트는 메소드 안에서만 사용가능(밖에서는 사용불가)


     이벤트 핸들러에 객체의 메소드를 연결

     이벤트 핸들러는 객체 메소드에서 호출

     이벤트 핸들러를 메소드를 통해 다른 객체 또는 객체의 매소드를 호출하기 위한 방법


     이벤트에 메소드 추가 및 삭제 : +=, -=

        객체.이벤트 핸들러 += new 델리게이트형(객체.메소드1);   // 1.0 버전

        객체.이벤트 핸들러 += 객체.메소드1   // 2.0 버전

        객체.이벤트 핸들러 -= 객체.메소드2    // += 추가, -= 삭제


1
2
3
4
5
6
7
8
9
10
11
12
13
// 이벤트 기본 형식
 
[접근 한정자] event 델리게이트형 이벤트명
delegate void DelegateType(string message);
 
class A
{
     public event DelegateType EventHandler;
     public void Func(string Message)
     {
          EventHandler(Message);
     }
}
Colored by Color Scripter
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
delegate void DelegateType(string message);
 
class A
{
    public event DelegateType EventHandler;
    public void Func(string Message)
    {
        EventHandler(Message);
    }
}
 
class B
{
    public void PrintA(string Message)
    {
        Console.WriteLine(Message);
    }
    public void PrintB(string Message)
    {
        Console.WriteLine(Message);
    }
}
 
A Test1 = new A();
B Test2 = new B();
 
Test1.EventHandler += new DelegateType(Test2.PrintA); // 1.0 버전
Test1.EventHandler += new DelegateType(Test2.PrintB);
Test1.Func("Goooood");
Test1.EventHandler -= Test2.PrintB; // 2.0 버전
Test1.Func("HDDDDDD");
Test1.EventHandler -= Test2.PrintA;
Test1.EventHandler += Test2.PrintA;
Test1.Func("1111111");
// Goooood Goooood HDDDDDD 111111 출력
cs




저작자표시 (새창열림)

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

[C#] - 비동기 처리 : task  (0) 2019.04.09
[C#] - 비동기 처리 : async 와 await  (0) 2019.04.09
[C#] - 델리게이트(delegate), 멀티캐스트 델리게이트  (0) 2019.04.08
[C#] - 클래스 배열의 변수과 속성, 인덱스 비교  (0) 2019.04.08
[C#] - property(속성) : 클래스 안의 private형 멤버변수에 접근  (0) 2019.04.05

댓글()
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
최근 등록 현황
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
달력
지난달
2025.6
다음달
일월화수목금토
1234567
891011121314
15161718192021
22232425262728
2930
태그 구름
  • 소켓 프로그래밍
  • 카카오 로그인 연동
  • 정규형
  • 정보처리산업기사 16년
  • 카카오 로그인
  • 정보처리기사 실기 정리
  • 정보처리산업기사 정리
  • 이클립스 디비 연동
  • 정보처리산업기사 15년
  • 안드로이드 카카오 로그인
  • HTML
  • 커널 모듈 프로그래밍
  • 정보처리산업기사 총정리
  • 데이터베이스
  • 안드로이드 카카오 로그인 연동
  • 정보처리산업기사 15년 필기
  • 정보처리산업기사 필기
  • 자료구조
  • nodejs MySQL 연동하기(Connection Pool)
  • 소켓
  • 안드로이드
  • 정보처리산업기사 필기 정리
  • 안드로이드 intent
  • 정보처리산업기사 요약
  • 정규화
  • 이클립스 mysql 연동
  • 정보처리산업기사 16년 필기
  • 리눅스
  • jsp
  • nodejs express
카운터
전체 방문자
오늘
어제
Skin by M1REACT. Designed by M1STORY.TISTORY.COM. Valid XHTML 1.0 and CSS 3. Copyright ⓒ Riucc's Storage. All rights reserved.

티스토리툴바