.使用C#实现一个对象池
时间: 2024-02-04 17:03:57 浏览: 68
万能对象池【C#实现】
好的,这里给您提供一个简单的对象池实现,使用C#语言:
```csharp
using System.Collections.Generic;
public class ObjectPool<T> where T : new()
{
private Stack<T> pool;
public ObjectPool()
{
pool = new Stack<T>();
}
public T Get()
{
if(pool.Count == 0)
{
return new T();
}
else
{
return pool.Pop();
}
}
public void Release(T obj)
{
pool.Push(obj);
}
}
```
使用时,可以按照以下步骤:
```csharp
ObjectPool<GameObject> pool = new ObjectPool<GameObject>();
GameObject obj = pool.Get();
//使用对象
pool.Release(obj);
```
这个对象池可以在需要大量创建对象的场景中使用,例如游戏中的子弹、敌人等对象,可以在对象使用完毕后,将其回收到对象池中,以便下次直接从池中获取,避免频繁的创建和销毁对象,提高性能和效率。
阅读全文