using Ardalis.GuardClauses;
public static class Program
public static void Main()
private static void TestStruct(int x)
Guard.Against.OutOfRange(x, nameof(x), -10, 10);
Guard.Against.OutOfRange<int>(x, nameof(x), -10, 10);
private static void TestNullableStruct(int? x)
Guard.Against.OutOfRange(x, nameof(x), -10, 10);
Guard.Against.OutOfRange<int?>(x, nameof(x), -10, 10);
private static void TestClass(Version x)
var firstVersion = new Version(1,0);
var cuurentVersion = new Version(10,0);
Guard.Against.OutOfRange(x, nameof(x), firstVersion, cuurentVersion);
Guard.Against.OutOfRange<Version>(x, nameof(x), firstVersion, cuurentVersion);
private static void TestClassWithNull(Version x)
var firstVersion = new Version(1,0);
var cuurentVersion = new Version(10,0);
Guard.Against.OutOfRange(null, nameof(x), firstVersion, cuurentVersion);
Guard.Against.OutOfRange<Version>(null, nameof(x), firstVersion, cuurentVersion);