public T CheckOut() { T value; if (available.Count == 0) { value = NewItem; } else { //Create new item value = available.First(); available.Remove(value); } checkedOut.Add(value); onCheckOut?.Invoke(value); return(value); }
public void CheckIn(T value) { onCheckIn?.Invoke(value); available.Add(value); checkedOut.Remove(value); }