# FunctionPointer<T>

> A function pointer that can be used from a Burst Job or from regular C#. It needs to be compiled through BurstCompiler.CompileFunctionPointer

## Definition

* **Type:** Struct
* **Namespace:** [Unity.Burst](/engine/6000.6/script-reference/unity/burst.md)
* **Assembly:** UnityEngine.BurstModule
* **Implements:** [IFunctionPointer](/engine/6000.6/script-reference/unity/burst/ifunctionpointer.md)

```csharp
public readonly struct FunctionPointer<T> : IFunctionPointer
```

## Constructors

| Constructor                                                                                               | Description                                                                        |
| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| [FunctionPointer\`1(System.IntPtr)](/engine/6000.6/script-reference/unity/burst/functionpointer1/ctor.md) | Creates a new instance of this function pointer with the following native pointer. |

## Properties

| Property                                                                               | Description                                                                                                                                                                                                                                                                                                                          |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Invoke](/engine/6000.6/script-reference/unity/burst/functionpointer1/invoke.md)       | Gets the delegate associated to this function pointer in order to call the function pointer. This delegate can be called from a Burst Job or from regular C#. If calling from regular C#, it is recommended to cache the returned delegate of this property instead of using this property every time you need to call the delegate. |
| [IsCreated](/engine/6000.6/script-reference/unity/burst/functionpointer1/iscreated.md) | Whether the function pointer is valid.                                                                                                                                                                                                                                                                                               |
| [Value](/engine/6000.6/script-reference/unity/burst/functionpointer1/value.md)         | Gets the underlying pointer.                                                                                                                                                                                                                                                                                                         |
