System.MulticastDelegate.Remove C# (CSharp) Method

Remove() private method

private Remove ( Delegate value ) : Delegate
value Delegate
return Delegate
        public Delegate Remove(Delegate value)
        {
            var constructor = GetType().GetConstructors()[0];
            var newInvocationList = only == null && all == null ? null : all == null ? new[] { only }.Except(new[] { value }).ToArray() : all.Except(new[] { value }).ToArray();
            if (newInvocationList.Length == 0)
                return null;
            return new MulticastDelegate(Target, newInvocationList);
//            return constructor.Invoke(new[] { Target }.Concat(newInvocationList).ToArray()).As<Delegate>();
        }
	}