ThrowHelper
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
namespace System
{
internal static class ThrowHelper
{
[NullableContext(2)]
internal static void ThrowIfNull([NotNull] object argument, [CallerArgumentExpression("argument")] string paramName = null)
{
if (argument == null)
Throw(paramName);
}
[DoesNotReturn]
private static void Throw(string paramName)
{
throw new ArgumentNullException(paramName);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[NullableContext(1)]
[return: NotNull]
public static string IfNullOrWhitespace([Nullable(2)] [NotNull] string argument, [CallerArgumentExpression("argument")] string paramName = "")
{
if (string.IsNullOrWhiteSpace(argument)) {
if (argument == null)
throw new ArgumentNullException(paramName);
throw new ArgumentException(paramName, "Argument is whitespace");
}
return argument;
}
}
}