Код IT Загрузка примера кода…

C# main.cs
public class Resource
{
    public int Id { get; set; }
    public void Use()
    {
        Console.WriteLine($"Resource {Id} is being used.");
    }
}
public class ObjectPool
{
    private readonly Stack<Resource> _available = new Stack<Resource>();
    private int _counter = 0;
    public Resource Get()
    {
        if (_available.Count == 0)
        {
            _counter++;
            return new Resource { Id = _counter };
        }

        return _available.Pop();
    }
    public void Release(Resource resource)
    {
        _available.Push(resource);
    }
}
public class Resource
{
    public int Id { get; set; }
    public void Use()
    {
        Console.WriteLine($"Resource {Id} is being used.");
    }
}
public class ObjectPool
{
    private readonly Stack<Resource> _available = new Stack<Resource>();
    private int _counter = 0;
    public Resource Get()
    {
        if (_available.Count == 0)
        {
            _counter++;
            return new Resource { Id = _counter };
        }

        return _available.Pop();
    }
    public void Release(Resource resource)
    {
        _available.Push(resource);
    }
}