Enqueued event for Queue in C#

前端 未结 2 1408
感情败类
感情败类 2021-01-21 07:19

I am new to event and delegates. How can I implement an enqueued event for an object of type Queue?

I am using C# and .Net 4.0

2条回答
  •  情书的邮戳
    2021-01-21 08:18

    You can encapsulate the Queue class with your own class, something like:

    class MyQueue
    {
        private readonly Queue queue = new Queue();     
        public event EventHandler Enqueued;     
        protected virtual void OnEnqueued()     
        {         
            if (Enqueued != null) 
            Enqueued(this, EventArgs e);     
        }     
        public virtual void Enqueue(T item)     
        {         
            queue.Enqueue(item);         
            OnEnqueued();     
        }     
        public int Count 
         {
                 get 
                 { 
                         return queue.Count; 
                 }
         }
        public virtual T Dequeue()     
        {
                T item = queue.Dequeue();         
                OnEnqueued();
                return item;
            }
    } 
    

提交回复
热议问题