コード例 #1
0
        static public void RemoveEventListener(this object target, string type, ExtensionEventHandler handler)
        {
            var list = getHandlerList(target, type);
            if (null == list)
                return;

            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].IsEqual(handler))
                {
                    list.RemoveAt(i);
                    break;
                }
            }
        }
コード例 #2
0
 static public void AddEventListener(this object target, string type, ExtensionEventHandler handler)
 {
     RemoveEventListener(target, type, handler);
     var list = getHandlerList(target, type, true);
     list.Add(new HandlerInfo(handler));
 }
コード例 #3
0
 public bool IsEqual(ExtensionEventHandler handler)
 {
     return Code == handler.GetHashCode();
 }
コード例 #4
0
 static public void RemoveEventListener(string type, ExtensionEventHandler handler)
 {
     eventDispatcher.RemoveEventListener(type, handler);
 }
コード例 #5
0
 public HandlerInfo(ExtensionEventHandler handler)
 {
     this.Code = handler.GetHashCode();
     TargetRef = new WeakReference(handler.Target);
     Method = handler.Method;
 }