internal static ArgumentValidation <TArg> Borrow(string paramName, TArg argValue) { if (_validationPool == null) { _validationPool = new Queue <ArgumentValidation <TArg> >(); } ArgumentValidation <TArg> valObj; if (_validationPool.Count > 0) { valObj = _validationPool.Dequeue(); } else { valObj = new ArgumentValidation <TArg>(); #if DEBUG ArgumentValidationCounter.AddCreationCount(); #endif } valObj.ParameterName = paramName; valObj.ArgumentValue = argValue; #if DEBUG ArgumentValidationCounter.AddMissingCount(); #endif return(valObj); }
void IPoolReturnable.Return() { ParameterName = null; ArgumentValue = default(TArg); _validationPool.Enqueue(this); #if DEBUG ArgumentValidationCounter.SubtractMissingCount(); #endif }