> For the complete documentation index, see [llms.txt](https://gabriel-schade-cardoso.gitbook.io/tango-br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gabriel-schade-cardoso.gitbook.io/tango-br/conceitos/using-chainable-operations-in-a-continuation-flow.md).

# Utilizando operações encadeadas com processos contínuos

A utilização de operações encadeadas em C# não é nenhuma novidade, utilizamos este recurso em diversas bibliotecas diferentes.

Qualquer método de um objeto que retorne uma instância de si mesmo se torna um método fluente capaz de gerar processos contínuos. Mais uma vez vemos este tipo de implementação na biblioteca [`System.Linq`](https://msdn.microsoft.com/pt-br/library/system.linq%28v=vs.100%29.aspx), onde é possível realizar uma filtragem e uma transformação através dos métodos `Where` e `Select`, veja um exemplo:

```csharp
IEnumerable<int> values = Enumerable.Range(0,10)
values.Where(value => value % 2 == 0)
      .Select(value => value * value);
```

Como o exemplo anterior mostra, é possível realizar diversas chamadas consecutivas em uma única linha de comando. Isto é o que chamamos de processo contínuo ou fluente.

A **Tango** implementa uma funcionalidade semelhante em diversos objetos: Option, Either e até mesmo nas próprias coleções como o Linq faz.

Além disso, há um tipo especial de objeto chamado `Continuation` utilizado principalmente para este tipo de processamento fluente, neste caso tratando uma saída de sucesso e uma saída de erro.
