示例#1
0
        // Get the invocation list of the current delegate.
        public override Delegate[] GetInvocationList()
        {
            int len = GetLength(this);

            Delegate[]        list    = new Delegate [len];
            int               posn    = len - 1;
            MulticastDelegate current = this;
            MulticastDelegate clone;

            while (((Object)current) != null)
            {
                clone        = (MulticastDelegate)(current.MemberwiseClone());
                clone.prev   = null;
                list[posn--] = clone;
                current      = current.prev;
            }
            return(list);
        }