# IVariableAccess

Interface in [Yarn](https://docs.yarnspinner.dev/api/csharp/yarn)

## Summary

Provides a mechanism for retrieving values.

```csharp
public interface IVariableAccess
```

## Methods

| Name                                                                                                                              | Description                                                                                                                                                                                                                                                                                                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetVariableKind(string)](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.getvariablekind) | Gets the kind of variable named `name` .                                                                                                                                                                                                                                                                                                                                           |
| [TryGetValue(string,T?)](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.trygetvalue)      | Given a variable name, attempts to fetch a value for the variable, either from storage, initial values found in [Program](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.program) , or by evaluating a smart variable found in [Program](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.program) . |

## Properties

| Name                                                                                                                                    | Description                                                                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Program](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.program)                               | Gets or sets the Yarn [Program](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.program) that stores information about the initial values of variables, and is able to produce values for smart variables. |
| [SmartVariableEvaluator](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.ivariableaccess/yarn.ivariableaccess.smartvariableevaluator) | Gets or sets the object to use when evaluating smart variables.                                                                                                                                                                                   |
