# ITransactionalState&lt;TState&gt; Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.abstractions.itransactionalstate-1/)

## PerformRead(Func&lt;TState, TResult&gt;) {#performread-1-system-func-tstate-tresult-1da59ed9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.abstractions.itransactionalstate-1/methods/performread-1-system-func-tstate-tresult-1da59ed9/)

```csharp
public abstract Task<TResult> PerformRead<TResult>(Func<TState, TResult> readFunction)
```

Performs a read operation and returns the result, without modifying the state.

### Parameters

- `readFunction` (`Func<TState, TResult>`): A function that reads the state and returns the result. MUST NOT modify the state.

## PerformUpdate(Func&lt;TState, TResult&gt;) {#performupdate-1-system-func-tstate-tresult-88783a49}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.abstractions.itransactionalstate-1/methods/performupdate-1-system-func-tstate-tresult-88783a49/)

```csharp
public abstract Task<TResult> PerformUpdate<TResult>(Func<TState, TResult> updateFunction)
```

Performs an update operation and returns the result.

### Parameters

- `updateFunction` (`Func<TState, TResult>`): A function that can read and update the state, and return a result
