# InMemoryVariableStorage

Class in [Yarn.Unity](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity)

Inherits from [`VariableStorageBehaviour`](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.variablestoragebehaviour)

## Summary

A simple implementation of VariableStorageBehaviour.

```csharp
public class InMemoryVariableStorage : VariableStorageBehaviour, IEnumerable<KeyValuePair<string, object>>
```

## Remarks

This class stores variables in memory, and is erased when the game exits.

This class also has basic serialization and save/load example functions.

You can also enumerate over the variables by using a `foreach` loop:

```
// 'storage' is an InMemoryVariableStorage
foreach (var variable in storage) {
string name = variable.Key;
System.Object value = variable.Value;
}
```

Note that as of v2.0, this class no longer uses Yarn.Value, to enforce static typing of declared variables within the Yarn Program.

## Fields

| Name                                                                                                                                                | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| [showDebug](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.showdebug) |             |

## Methods

| Name                                                                                                                                                                                                                                                   | Description                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| [Clear()](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.clear)                                                                                                          | Removes all variables from storage.                                                            |
| [Contains(string)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.contains)                                                                                              | returns a boolean value representing if the particular variable is inside the variable storage |
| [GetAllVariables()](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.getallvariables)                                                                                      |                                                                                                |
| [GetDebugList()](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.getdebuglist)                                                                                            |                                                                                                |
| [SetAllVariables(Dictionary\<string, float>,Dictionary\<string, string>,Dictionary\<string, bool>,bool)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.setallvariables) |                                                                                                |
| [SetValue(string,bool)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.setvalue-3)                                                                                       |                                                                                                |
| [SetValue(string,float)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.setvalue-2)                                                                                      |                                                                                                |
| [SetValue(string,string)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.setvalue-1)                                                                                     |                                                                                                |
| [TryGetValue(string,T)](https://docs.yarnspinner.dev/2.3/api/csharp/yarn.unity/yarn.unity.inmemoryvariablestorage/yarn.unity.inmemoryvariablestorage.trygetvalue)                                                                                      | Retrieves a `Yarn.Value` by name.                                                              |
