public class ArgumentNullException { public static void ThrowIfNull([NotNull] object? argument, [CallerArgumentExpression("argument")] string? paramName = null) { if (argument is null) { Throw(paramName); } } [DoesNotReturn] private static void Throw(string? paramName) => throw new ArgumentNullException(paramName); }