# SharedComponentTypeHandle<T>

> A handle to a specific shared 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 SharedComponentTypeHandle<T> where T : struct, ISharedComponentData
```

## 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 SharedComponentTypeHandle, use [ComponentSystemBase.GetSharedComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/componentsystembase/getsharedcomponenttypehandle.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 [SharedComponentTypeHandle\<T>.Update](/engine/7000.0/script-reference/unity/entities/sharedcomponenttypehandle1/update.md) just before use.

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

## Methods

| Method                                                                                                      | Description                                                                                                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [ToFixedString](/engine/7000.0/script-reference/unity/entities/sharedcomponenttypehandle1/tofixedstring.md) | Returns the formatted FixedString "SharedComponentTypeHandle\[type\_name\_here]".                                                                                                                                                          |
| [Update](/engine/7000.0/script-reference/unity/entities/sharedcomponenttypehandle1/update.md)               | When a SharedComponentTypeHandle 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. |
