diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs
new file mode 100644
index 0000000..7a9fc65
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs
@@ -0,0 +1,20 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentException(string? paramName)
+ {
+ throw new ArgumentException(null, paramName);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs
new file mode 100644
index 0000000..90f8ca8
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs
@@ -0,0 +1,20 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentNullException(string? paramName)
+ {
+ throw new ArgumentNullException(paramName);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs
new file mode 100644
index 0000000..34650a2
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs
@@ -0,0 +1,21 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentOutOfRangeException(string? paramName, T value)
+ where T : IComparable
+ {
+ throw new ArgumentOutOfRangeException(paramName, value, null);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
index 4d87b6b..d49209f 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
@@ -2,6 +2,7 @@
using System;
using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
public static partial class Argument
@@ -25,7 +26,7 @@ public static void ThrowIfGreaterThan(
#else
if (value.CompareTo(other) > 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
index fc65d38..881b358 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
@@ -25,7 +25,7 @@ public static void ThrowIfGreaterThanOrEqual(
#else
if (value.CompareTo(other) >= 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs b/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
index 3480348..84142c1 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
@@ -25,7 +25,7 @@ public static void ThrowIfLessThan(
#else
if (value.CompareTo(other) < 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs b/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
index cd16de4..2e27613 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
@@ -25,7 +25,7 @@ public static void ThrowIfLessThanOrEqual(
#else
if (value.CompareTo(other) <= 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
index 637cf66..c674335 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
@@ -23,7 +23,7 @@ public static void ThrowIfNull(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
index 6ce06de..ef05d67 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
@@ -25,12 +25,12 @@ public static void ThrowIfNullOrEmpty(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
if (string.IsNullOrEmpty(argument))
{
- throw new ArgumentException(null, paramName);
+ ThrowArgumentException(paramName);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
index 5f4409e..e698491 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
@@ -25,12 +25,12 @@ public static void ThrowIfNullOrWhiteSpace(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
if (string.IsNullOrWhiteSpace(argument))
{
- throw new ArgumentException(null, paramName);
+ ThrowArgumentException(paramName);
}
#endif
}