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); }
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); }
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 }