# AddFunction(string,System.Func\<TResult>)

Method in [DialogueRunner](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.unity/yarn.unity.dialoguerunner)

## Summary

Add a new function that returns a value, so that it can be called from Yarn scripts.

```csharp
public void AddFunction<TResult>(string name, System.Func<TResult> implementation)
```

## Remarks

When this function has been registered, it can be called from your Yarn scripts like so:

```
<<if myFunction(1, 2) == true>>
myFunction returned true!
<<endif>>
```

The `call` command can also be used to invoke the function:

```
<<call myFunction(1, 2)>>
```

## Parameters

| Name                                  | Description                                                         |
| ------------------------------------- | ------------------------------------------------------------------- |
| `System.Func<TResult>` implementation | The `Delegate` that should be invoked when this function is called. |
| `string` name                         |                                                                     |

## Type Parameters

| Name    | Description                                            |
| ------- | ------------------------------------------------------ |
| TResult | The type of the value that the function should return. |

## See Also

* Library
