블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday






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 와 엇비슷한 형태로 사용이 가능하다

반응형
Posted by blueasa
, |