<PackageReference Include="NUnit" Version="4.3.0" />

ReusableConstraint

ReusableConstraint wraps a constraint expression after resolving it so that it can be reused consistently.
using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [NullableContext(1)] [Nullable(0)] public class ReusableConstraint : IResolveConstraint { private readonly IConstraint _constraint; public ReusableConstraint(IResolveConstraint c) { _constraint = c.Resolve(); } public static implicit operator ReusableConstraint(Constraint c) { return new ReusableConstraint(c); } public override string ToString() { return _constraint.ToString(); } public IConstraint Resolve() { return _constraint; } } }