public static T MustNotBeDefault <T>([ValidatedNotNull] this T parameter, [CallerArgumentExpression("parameter")] string?parameterName = null, string?message = null)
    {
        if (default(T) is null)
        {
            if (parameter is null)
            {
                Throw.ArgumentNull(parameterName, message);
            }
            return(parameter);
        }

        if (EqualityComparer <T> .Default.Equals(parameter, default !))
        {
            Throw.ArgumentDefault(parameterName, message);
        }
        return(parameter);
    }
示例#2
0
        public static T MustNotBeDefault <T>(this T parameter, string parameterName = null, string message = null)
        {
            if (default(T) == null)
            {
                if (parameter == null)
                {
                    Throw.ArgumentNull(parameterName, message);
                }
                return(parameter);
            }

            if (parameter.Equals(default(T)))
            {
                Throw.ArgumentDefault(parameterName, message);
            }
            return(parameter);
        }
示例#3
0
        public static T MustNotBeDefault <T>(this T parameter, string?parameterName = null, string?message = null)
        {
#pragma warning disable CS8653 // It's ok if T is resolved to a reference type. This method is usually used in generic contexts.
            if (default(T) == null)
            {
                if (parameter == null)
                {
                    Throw.ArgumentNull(parameterName, message);
                }
                return(parameter);
            }

            if (EqualityComparer <T> .Default.Equals(parameter, default))
            {
                Throw.ArgumentDefault(parameterName, message);
            }
            return(parameter);

#pragma warning restore CS8653
        }