C# 队列加入成员时触发回调
时间: 2023-07-12 07:29:16 浏览: 96
成员函数用于回调函数
在 C# 中,可以使用自定义类来实现队列,并在添加成员时触发回调。一种实现方式是在自定义类中定义一个委托类型,用于处理添加成员的回调函数,然后在添加成员的方法中调用该委托。以下是一个简单的示例代码:
```csharp
using System;
using System.Collections.Generic;
class MyQueue<T>
{
private Queue<T> queue = new Queue<T>();
public delegate void OnEnqueueCallback(T item);
public OnEnqueueCallback OnEnqueue;
public void Enqueue(T item)
{
queue.Enqueue(item);
if (OnEnqueue != null)
{
OnEnqueue(item);
}
}
public T Dequeue()
{
return queue.Dequeue();
}
}
class Program
{
static void Main(string[] args)
{
MyQueue<int> queue = new MyQueue<int>();
queue.OnEnqueue += OnEnqueueCallback;
queue.Enqueue(1); // 触发回调
queue.Enqueue(2); // 触发回调
queue.Dequeue();
queue.Dequeue();
}
static void OnEnqueueCallback(int item)
{
Console.WriteLine("Enqueued: " + item);
}
}
```
在上面的代码中,自定义类 `MyQueue` 中定义了一个委托类型 `OnEnqueueCallback`,以及一个公共的委托实例 `OnEnqueue`。在 `Enqueue` 方法中,如果 `OnEnqueue` 不为 null,则调用它,并传递添加的成员作为参数。在 `Main` 方法中,我们订阅了 `OnEnqueue` 委托,并在回调函数 `OnEnqueueCallback` 中输出添加的成员。
阅读全文