> ## Documentation Index
> Fetch the complete documentation index at: https://ai.easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# AskUserQuestion

> Represents a single question within the AskUserQuestion tool input.

## Definition

**Assembly:** CloudNimble.ClaudeEssentials.dll

**Namespace:** CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs

**Inheritance:** System.Object

## Syntax

```csharp theme={null}
CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.AskUserQuestion
```

## Summary

Represents a single question within the AskUserQuestion tool input.

## Remarks

Each question includes a prompt, a short header label, a set of options to choose from,
and whether multiple selections are allowed. Questions should be clear, specific, and
end with a question mark.

Example JSON:

```csharp theme={null}
{
  "question": "Which library should we use for date formatting?",
  "header": "Library",
  "options": [
    { "label": "date-fns", "description": "Lightweight, tree-shakeable date utility library" },
    { "label": "Day.js", "description": "2KB immutable date library, Moment.js alternative" }
  ],
  "multiSelect": false
}
```

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={null}
public AskUserQuestion()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public Object()
```

## Properties

### &#x20;Header

Gets or sets a very short label displayed as a chip/tag (max 12 chars).
Examples: "Auth method", "Library", "Approach".

#### Syntax

```csharp theme={null}
public string Header { get; set; }
```

#### Property Value

Type: `string`

### &#x20;MultiSelect

Gets or sets whether to allow the user to select multiple options instead of just one.
Use when choices are not mutually exclusive.

#### Syntax

```csharp theme={null}
public bool MultiSelect { get; set; }
```

#### Property Value

Type: `bool`

### &#x20;Options

Gets or sets the available choices for this question. Must have 2-4 options.
Each option should be a distinct, mutually exclusive choice (unless [AskUserQuestion.MultiSelect](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Inputs/AskUserQuestion.md#multiselect) is enabled).
There should be no 'Other' option, that will be provided automatically.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.AskUserQuestionOption> Options { get; set; }
```

#### Property Value

Type: `System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.AskUserQuestionOption>`

### &#x20;Question

Gets or sets the complete question to ask the user. Should be clear, specific, and end with a question mark.
If [AskUserQuestion.MultiSelect](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Inputs/AskUserQuestion.md#multiselect) is `true`, phrase it accordingly, e.g. "Which features do you want to enable?"

#### Syntax

```csharp theme={null}
public string Question { get; set; }
```

#### Property Value

Type: `string`

## Methods

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual string ToString()
```

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.