# EvaluateExAsync Method

## Overloads

| [EvaluateExAsync(String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm#Qlik_Engine_IApp_EvaluateExAsync_System_String_) |  | Evaluates an expression and returns the result as a dual.<br><br>Example<br><br>The client sends:<br><br>```<br>{<br>"handle": 1,<br>"method": "EvaluateEx",<br>"params": {<br>"qExpression": "Sum(Holes)"<br>},<br>"id": 7,<br>"jsonrpc": "2.0"<br>}<br>```<br><br>The engine returns:<br><br>```<br>{<br>"jsonrpc": "2.0",<br>"id": 7,<br>"result": {<br>"qReturn": "361716"<br>}<br>}<br>``` |
| --- | --- | --- |
| [EvaluateExAsync(AsyncHandle, String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm#Qlik_Engine_IApp_EvaluateExAsync_Qlik_Engine_AsyncHandle_System_String_) |  | Evaluates an expression and returns the result as a dual.<br><br>Example<br><br>The client sends:<br><br>```<br>{<br>"handle": 1,<br>"method": "EvaluateEx",<br>"params": {<br>"qExpression": "Sum(Holes)"<br>},<br>"id": 7,<br>"jsonrpc": "2.0"<br>}<br>```<br><br>The engine returns:<br><br>```<br>{<br>"jsonrpc": "2.0",<br>"id": 7,<br>"result": {<br>"qReturn": "361716"<br>}<br>}<br>``` |
| [EvaluateExAsync<T>(AsyncHandle, Func<Response, T>, String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm#Qlik_Engine_IApp_EvaluateExAsync__1_Qlik_Engine_AsyncHandle_System_Func_Qlik_Engine_Communication_IO_Response___0__System_String_) |  | Evaluates an expression and returns the result as a dual.<br><br>Example<br><br>The client sends:<br><br>```<br>{<br>"handle": 1,<br>"method": "EvaluateEx",<br>"params": {<br>"qExpression": "Sum(Holes)"<br>},<br>"id": 7,<br>"jsonrpc": "2.0"<br>}<br>```<br><br>The engine returns:<br><br>```<br>{<br>"jsonrpc": "2.0",<br>"id": 7,<br>"result": {<br>"qReturn": "361716"<br>}<br>}<br>``` |

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm)

## EvaluateExAsync(String)

Evaluates an expression and returns the result as a dual.

#### Example

The client sends:

```
 {
     "handle": 1,
     "method": "EvaluateEx",
     "params": {
         "qExpression": "Sum(Holes)"
     },
     "id": 7,
     "jsonrpc": "2.0"
 }
```

The engine returns:

```
 {
     "jsonrpc": "2.0",
     "id": 7,
     "result": {
         "qReturn": "361716"
     }
 }
```

### Declaration

```

          Task<FieldValue> EvaluateExAsync([QixName("qExpression")] string expression)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| System.String | expression | Expression to evaluate. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;[FieldValue](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.FieldValue.htm)&gt; |  |

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm)

## EvaluateExAsync(AsyncHandle, String)

Evaluates an expression and returns the result as a dual.

#### Example

The client sends:

```
 {
     "handle": 1,
     "method": "EvaluateEx",
     "params": {
         "qExpression": "Sum(Holes)"
     },
     "id": 7,
     "jsonrpc": "2.0"
 }
```

The engine returns:

```
 {
     "jsonrpc": "2.0",
     "id": 7,
     "result": {
         "qReturn": "361716"
     }
 }
```

### Declaration

```

          Task<FieldValue> EvaluateExAsync(AsyncHandle asyncHandle, [QixName("qExpression")] string expression)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| [AsyncHandle](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.AsyncHandle.htm) | asyncHandle | Handle to asynchronous method request |
| System.String | expression | Expression to evaluate. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;[FieldValue](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.FieldValue.htm)&gt; |  |

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.EvaluateExAsync.htm)

## EvaluateExAsync&lt;T&gt;(AsyncHandle, Func&lt;Response, T&gt;, String)

Evaluates an expression and returns the result as a dual.

#### Example

The client sends:

```
 {
     "handle": 1,
     "method": "EvaluateEx",
     "params": {
         "qExpression": "Sum(Holes)"
     },
     "id": 7,
     "jsonrpc": "2.0"
 }
```

The engine returns:

```
 {
     "jsonrpc": "2.0",
     "id": 7,
     "result": {
         "qReturn": "361716"
     }
 }
```

### Declaration

```
Task<T> EvaluateExAsync<T>(AsyncHandle asyncHandle, Func<Response, T> onResult, [QixName("qExpression")] string expression)
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| [AsyncHandle](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.AsyncHandle.htm) | asyncHandle | Handle to asynchronous method request |
| System.Func&lt;[Response](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.Communication.IO.Response.htm), T&gt; | onResult | Continuation function |
| System.String | expression | Expression to evaluate. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;T&gt; |  |

### Type Parameters

| Name | Description |
| --- | --- |
| T |  |