# BufferTypeHandle<T>

> A handle to a specific buffer component type, used to access an ArchetypeChunk 's component data in a job.

## Definition

* **Type:** Struct
* **Namespace:** [Unity.Entities](/engine/7000.0/script-reference/unity/entities.md)
* **Assembly:** UnityEngine.EntitiesModule

```csharp
public struct BufferTypeHandle<T> where T : unmanaged, IBufferElementData
```

## Remarks

Passing a type handle to a job automatically registers the job as a reader or writer of that type, which allows the DOTS safety system to detect potential race conditions between concurrent jobs which access the same component type.

To create a BufferTypeHandle, use [ComponentSystemBase.GetBufferTypeHandle](/engine/7000.0/script-reference/unity/entities/componentsystembase/getbuffertypehandle.md). While type handles can be created just in time before they're used, it is more efficient to create them once during system creation, cache them in a private field on the system, and incrementally update them with [BufferTypeHandle\<T>.Update](/engine/7000.0/script-reference/unity/entities/buffertypehandle1/update.md) just before use.

If the component type is not known at compile time, use [DynamicComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/dynamiccomponenttypehandle.md).

## Properties

| Property                                                                                                       | Description                                                     |
| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [GlobalSystemVersion](/engine/7000.0/script-reference/unity/entities/buffertypehandle1/globalsystemversion.md) | The global system version for which this handle is valid.       |
| [IsReadOnly](/engine/7000.0/script-reference/unity/entities/buffertypehandle1/isreadonly.md)                   | Reports whether this type handle was created in read-only mode. |

## Methods

| Method                                                                                             | Description                                                                                                                                                                                                                       |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ToFixedString](/engine/7000.0/script-reference/unity/entities/buffertypehandle1/tofixedstring.md) | Returns the formatted FixedString "BufferTypeHandle\[type\_name\_here]".                                                                                                                                                          |
| [Update](/engine/7000.0/script-reference/unity/entities/buffertypehandle1/update.md)               | When a BufferTypeHandle is cached by a system across multiple system updates, calling this function inside the system's OnUpdate() method performs the minimal incremental updates necessary to make the type handle safe to use. |
