[CustomEvent] 간단한 이벤트 클래스 작성
Programming/C# / 2012. 4. 25. 18:19
EventArgs 를 상속받는 클래스 안에다가 이벤트에 필요한 "event" 와 delegate 를 함께 작성 함으로서 구현 코드의 코드량을 줄였다.
이벤트 클래스 작성
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StikusFrameAuth.events { public class SFATraceEvent : EventArgs { //event public delegate void SFATraceEventDele(object sender, SFATraceEvent e); public static event SFATraceEventDele TraceEvent; //arg public STATUS_TYPE statusType { get; private set; } public string contentString { get; private set; } public SFATraceEvent(STATUS_TYPE _statusType , params object[] _content) : base() { statusType = _statusType; foreach (var s in _content) { contentString += s.ToString() + " "; } } public enum STATUS_TYPE { COMMENT } //dispatch public static void dispatchEvent(object sender, params object[] _content) { TraceEvent(sender, new SFATraceEvent(STATUS_TYPE.COMMENT, _content)); } } } |
구현
using System; using System.Collections.Generic; using System.Linq; using System.Text; using StikusFrameAuth.events; namespace StikusFrameAuth { public class StikusFrameAuth { public StikusFrameAuth() { //addEventListener SFATraceEvent.TraceEvent +=new SFATraceEvent.SFATraceEventDele(SFATraceEventArg_SFATraceEvent); //dispatchEvent SFATraceEvent.dispatchEvent(this, "argString" , "wow"); } void SFATraceEventArg_SFATraceEvent(object sender, SFATraceEvent e) { Console.WriteLine(e.contentString); } } } |
AS3 의 addEventlistener , DispatchEvent 와 엇비슷한 형태로 사용이 가능하다
반응형
'Programming > C#' 카테고리의 다른 글
Spy++ 하이라이트 기능 구현(using C++ or C#) (0) | 2012.05.07 |
---|---|
[MouseKeyboardLibrary] 상당히 편리한 마우스키보드 후킹 라이브러리 (0) | 2012.04.25 |
Dictionary foreach (0) | 2012.04.25 |
Properties-Settings.settings 사용 방법 (0) | 2012.03.16 |
Open/SaveFileDialog Filter 여러 확장자 한번에 보기 (0) | 2012.03.10 |