/// <summary>
        /// Checks if this variable can hold this value.
        /// </summary>
        private bool IsValid(float r, float g, float b, float a)
        {
            ThrowIfDisposed();

            return !Validating.GetInvocationList().Select(h => {
                var check = new Color4ValidationEventArgs(r, g, b, a);
                h.DynamicInvoke(new object[] { this, check });
                return !check.Valid;
            }).Any(failed => failed);
        }