在.NET中,要限制Queue <T>的大小,可以使用以下方法:
public class BoundedQueue<T> : Queue<T>
{
public int MaxCapacity { get; }
public BoundedQueue(int maxCapacity)
{
MaxCapacity = maxCapacity;
}
public new void Enqueue(T item)
{
if (Count >= MaxCapacity)
{
throw new InvalidOperationException("Queue is full");
}
base.Enqueue(item);
}
}
var boundedQueue = new BoundedQueue<int>(5);
for (int i = 0; i < 5; i++)
{
boundedQueue.Enqueue(i);
}
boundedQueue.Enqueue(5); // 抛出异常:Queue is full
在这个例子中,我们创建了一个BoundedQueue <T>类,它继承自Queue <T>,并添加了一个最大容量属性MaxCapacity。我们重写了Enqueue方法,以便在队列已满时抛出异常。
这样,我们就可以使用BoundedQueue <T>类来限制队列的大小。
领取专属 10元无门槛券
手把手带您无忧上云