# GetComponentRW

> Gets a reference to a component for an entity, for read/write access.

## Definition

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

## GetComponentRW\<T>(Entity)

Gets a reference to a component for an entity, for read/write access.

```csharp
public static RefRW<T> GetComponentRW<T>(Entity entity) where T : unmanaged, IComponentData
```

### Parameters

**** (\[Entity]\(/engine/7000.0/script-reference/unity/entities/entity)): The entity.

### Returns

| Type                                                                  | Description                            |
| --------------------------------------------------------------------- | -------------------------------------- |
| [RefRW\<T>](/engine/7000.0/script-reference/unity/entities/refrw1.md) | A read/write reference to component T. |

### Remarks

Use this method to look up data in another entity using its [Entity](/engine/7000.0/script-reference/unity/entities/entity.md) object. For example, if you have a component that contains an Entity field, you can look up the component data for the referenced entity using this method.

When iterating over a set of entities with an idomatic foreach query, don't use this method to access the data of the current entity in the set. It's faster to access the data by requesting it as an argument of a query.

When you call this method it gets replaced with component access methods through [ComponentLookup\<T>](/engine/7000.0/script-reference/unity/entities/componentlookup1.md).

This lookup method results in a slower, indirect memory access. When possible, organize your data to minimize the need for indirect lookups.

Not working in IJobEntity, and Utility methods

## GetComponentRW\<T>(SystemHandle)

Gets a reference to a component for an entity associated with a system, for read/write access.

```csharp
public static RefRW<T> GetComponentRW<T>(SystemHandle systemHandle) where T : unmanaged, IComponentData
```

### Parameters

**** (\[SystemHandle]\(/engine/7000.0/script-reference/unity/entities/systemhandle)): The system handle.

### Returns

| Type                                                                  | Description                            |
| --------------------------------------------------------------------- | -------------------------------------- |
| [RefRW\<T>](/engine/7000.0/script-reference/unity/entities/refrw1.md) | A read/write reference to component T. |

### Remarks

Use this method to look up data in another system owned entity using its [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemhandle.md) object.

When you call this method it gets replaced with component access methods through [ComponentLookup\<T>](/engine/7000.0/script-reference/unity/entities/componentlookup1.md).

Not working in IJobEntity, and Utility methods
