Exemple #1
0
    //To create a listener that doesnt need data, and can return a value back to wherever the function was Raised
    public void AddEventListener <T>(string eventName, EventCallBackWithReturn <T> listener)
    {
        if (IsEventRegistered(eventName) == false)
        {
            this.RegisterEvent(eventName);
        }

        this._events[eventName] = (EventCallBackWithReturn <T>) this._events[eventName] + listener;
    }
Exemple #2
0
    //To remove an event listener that does not take in data, and returns a value
    public void RemoveEventListener <T>(string eventName, EventCallBackWithReturn <T> listener)
    {
        if (IsEventRegistered(eventName) == false)
        {
            this.RegisterEvent(eventName);
        }

        this._events[eventName] = (EventCallBackWithReturn <T>) this._events[eventName] - listener;

        if (this._events[eventName] == null)
        {
            this.RemoveEvent(eventName);
        }
    }
Exemple #3
0
    //To check if an event listener is already registered that does not take in data but does return a value
    public bool IsEventListenerRegistered <T>(string eventName, EventCallBackWithReturn <T> listener)
    {
        bool result = false;

        if (this.IsEventRegistered(eventName) == false)
        {
            return(result);
        }

        Delegate[] list = this._events[eventName].GetInvocationList();
        foreach (Delegate d in list)
        {
            if ((EventCallBackWithReturn <T>)d == listener)
            {
                result = true;
                break;
            }
        }

        return(result);
    }