public static bool TryDecrementClampLower <T>(this IAtomicValue <T> variable, T minimumValue) where T : IComparable <T> { Contracts.Requires.That(variable != null); T unused; return(variable.TryDecrementClampLower(minimumValue, out unused)); }
public static bool TryIncrementClampUpper <T>(this IAtomicValue <T> variable, T maximumValue, out T result) where T : IComparable <T> { Contracts.Requires.That(variable != null); result = variable.Increment(); if (result.IsLessThanOrEqual(maximumValue)) { return(true); } else { result = variable.Decrement(); return(false); } }