Programming/C#
[CustomEvent] 간단한 이벤트 클래스 작성
blueasa
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 와 엇비슷한 형태로 사용이 가능하다
반응형