# Position

Class in [Yarn.Compiler](/3.1/api/csharp/yarn.compiler.md)

Inherits from `System.Object`

## Summary

Represents a position in a multi-line string.

```csharp
public class Position
```

## Constructors

| Name                                                                                                        | Description                                                                             |
| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [Position()](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position..ctor-2.md)        | Initialises a new instance of the Position class.                                       |
| [Position(int,int)](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position..ctor-1.md) | Initialises a new instance of the Position class with the specified line and character. |

## Fields

| Name                                                                                                              | Description                                  |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| [InvalidPosition](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.invalidposition.md) | Represents the default value for a Position. |

## Methods

| Name                                                                                                        | Description |
| ----------------------------------------------------------------------------------------------------------- | ----------- |
| [Equals(object)](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.equals.md)     |             |
| [GetHashCode()](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.gethashcode.md) |             |
| [ToString()](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.tostring.md)       |             |

## Properties

| Name                                                                                                  | Description                                                                                     |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [Character](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.character.md) | Gets or sets the zero-indexed character number of this position.                                |
| [IsValid](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.isvalid.md)     | Gets a value indicating whether this position has a zero or positive line and character number. |
| [Line](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.line.md)           | Gets or sets the zero-indexed line of this position.                                            |

## TYPENAME\_UNKNOWN\_PLURAL

| Name                                                                                                                                                                                                   | Description                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| [M:Yarn.Compiler.Position.op\_Addition(Yarn.Compiler.Position,Yarn.Compiler.Position)](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.op_addition.md)                     | Adds two positions by component and returns the result.                    |
| [M:Yarn.Compiler.Position.op\_GreaterThanOrEqual(Yarn.Compiler.Position,Yarn.Compiler.Position)](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.op_greaterthanorequal.md) | Compares two positions and returns true if `a` is equal to or after `b` .  |
| [M:Yarn.Compiler.Position.op\_LessThanOrEqual(Yarn.Compiler.Position,Yarn.Compiler.Position)](/3.1/api/csharp/yarn.compiler/yarn.compiler.position/yarn.compiler.position.op_lessthanorequal.md)       | Compares two positions and returns true if `a` is equal to or before `b` . |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yarnspinner.dev/3.1/api/csharp/yarn.compiler/yarn.compiler.position.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
