# PooledObject<T>

> A pooled object wraps a reference to an instance returned to the pool when the pooled object is disposed of.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Pool](/engine/6000.0/script-reference/unityengine/pool.md)
* **Assembly:** UnityEngine.CoreModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public struct PooledObject<T> : IDisposable where T : class
```

## Remarks

It automates the return of references to avoid manual handling.

The following example shows how to use a PooledObject:

## Constructors

| Constructor                                                                                                                       | Description                                                                                                   |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [PooledObject\`1(\`0,UnityEngine.Pool.IObjectPool\{\`0})](/engine/6000.0/script-reference/unityengine/pool/pooledobject1/ctor.md) | Initializes the pooled object with a managed object and specifies the pool to which the instance is returned. |
