예제 #1
0
        public T Request()
        {
            T item;

            if (_items.Count == 0)
            {
                var creator = Spawner ?? Activator.CreateInstance <T>;
                item = creator.Call();
                if (item == null)
                {
                    throw new InvalidOperationException("RequestReturnPool spawner returned a null object reference.");
                }
            }
            else
            {
                item = _items.Pop();
            }

            ItemRequested.Call(item);
            return(item);
        }
예제 #2
0
 public EventExamples()
 {
     OrderProcessed?.Invoke(null, EventArgs.Empty);
     ItemRequested?.Invoke(null, new VendingRequestArgs(1));
     ItemProcessed?.Invoke(null, new VendingRequestArgs(99));
 }