# 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/7000.0/script-reference/unity/burst.md)
* **Assembly:** UnityEngine.BurstModule
* **Implements:** [IFunctionPointer](/engine/7000.0/script-reference/unity/burst/ifunctionpointer.md)

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

## Constructors

| Constructor                                                                                               | Description                                                                        |
| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| [FunctionPointer\`1(System.IntPtr)](/engine/7000.0/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/7000.0/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/7000.0/script-reference/unity/burst/functionpointer1/iscreated.md)             | Whether the function pointer is valid.                                                                                                                                                                                                                                                                                               |
| [UncheckedInvoke](/engine/7000.0/script-reference/unity/burst/functionpointer1/uncheckedinvoke.md) | Like `Invoke` except that exceptions thrown will not be automatically handled and rethrown.                                                                                                                                                                                                                                          |
| [Value](/engine/7000.0/script-reference/unity/burst/functionpointer1/value.md)                     | Gets the underlying pointer.                                                                                                                                                                                                                                                                                                         |
