Notice
Recent Posts
Recent Comments
Tags
- javascript 유효성체크
- javascript 바코드 생성
- TempData
- ASP.Net Core 404
- SSD 복사
- 하드 윈도우 복사
- 404에러페이지
- 맥 오라클설치
- php 캐쉬제거
- 타임피커
- 바코드 스캔하기
- asp.net dropdownlist
- jquery 바코드
- ViewBag
- asp.net Select
- 강제이동
- XSS PHP
- jquery 바코드생성
- django 엑셀불러오기
- ViewData
- Mac Oracle
- 하드 마이그레이션
- 파일업로드 체크
- javascript redirection
- 파일업로드 유효성체크
- XSS방어
- 바코드 생성하기
- 말줄임표시
- asp.net core Select
- javascript 바코드스캔
웹개발자의 기지개
델리게이트 Delegate 연습1 (이벤트) 본문
C# 에서 이벤트 관련해서 동작을 시킬때 델리게이트라는 개념이 나온다.
델리게이트가 C++ 의 함수포인터와 비스무리 ~~ 보통 이벤트 처리시에 자주 이용된다.
대략 개념을 잡아보면
특정 이벤트가 발생하면 이러한 사실을 델리게이트(대리자, 위임자, 대신처리기)를 통하여 원하는 메소드들이 동작하게 하는 방식이다.
델리게이트는 같은 return 타입과 매개변수들로 이루어진 메소드(어떤 동작)와 같이 어우러져 있다.
여기서 return 타입이나 매개변수가 다르면 별개의 다른 델리게이트로 취급된다.
그리고, 읽고, 달리고, 마시고 등의 다양한 동작들(메소드들)을 하나의 델리게이트로 묶어서 돌릴수가 있다.
물론 특정 동작만 따로 뺄수도 있다.
+= 해당 이벤트 메소드 추가
-= 해당 이벤트 메소드 해제
일단 예제를 만들어봤다.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
namespace DeleLecture2
{
// delegate 타입 선언
delegate void DelegateType(string str);
class DelClass
{
// 이벤트 변수 선언
public event DelegateType MyEvent;
public void Func(string str1)
{
if (MyEvent != null)
MyEvent(str1); // 이벤트 발생
}
}
class ExamClass
{
public void Print1(string message)
{
Console.WriteLine("Print1함수 : " + message);
}
public void Print2(string message)
{
Console.WriteLine("Pring2함수 : " + message);
}
}
class Program
{
static void Main(string[] args)
{
DelClass delClass = new DelClass();
ExamClass examClass = new ExamClass();
// 이벤트 메소드 추가 등록
delClass.MyEvent += new DelegateType(examClass.Print1);
delClass.MyEvent += new DelegateType(examClass.Print2);
// 38, 39 라인과 동일
// delClass.EventHandler += examClass.Print1;
// delClass.EventHandler += examClass.Print2;
// Func() 메소드를 이용해서 MyEvent를 임의로 발생시킨다.
// 실제 상황에서는 자동적으로 이벤트가 발생된다. 마우스한번클릭, 마우스더블클릭 등등
delClass.Func("안녕하세요");
// 이벤트 해제
delClass.MyEvent -= examClass.Print2;
delClass.Func("Hi ~");
}
}
}
|
cs |
참고로 공부하면서 활용했던 강좌와 포스팅글도 아래에 남긴다.
[나우캠퍼스] 델리게이트 이벤트
https://www.youtube.com/watch?v=B-yaWp900sQ&t=2150s
'ASP.NET > C#' 카테고리의 다른 글
[C#] Guid 전역 고유한 키값 생성하기 (0) | 2022.11.18 |
---|---|
[C#] .NET Core - Entity Framework Core 2 (Talk, TalkComment with FK 예제) (0) | 2022.10.22 |
[C#] .NET Core - Entity Framework Core 1 (0) | 2020.12.19 |
[C#] string.IsNullOrEmpty 와 string.IsNullOrWhiteSpace (0) | 2020.10.10 |
델리게이트 Delegate 연습2 (이벤트) (0) | 2019.11.16 |
Comments