Skip to content

Declarar el tipo de error ​

Usa Result<TValue, TError> cuando el consumidor necesita conocer el tipo de la raíz del error.

csharp
using Greencore.Platform.Errors;
using Greencore.Platform.Results;
using Greencore.Platform.Results.Extensions;

var resultado = Result<int, StockError>.Fail(new StockError("SKU-01"));
if (resultado.IsError)
    Console.WriteLine(resultado.Error.ProductCode); // SKU-01.

Result<string, StockError> texto = resultado.Map(valor => valor.ToString());
Console.WriteLine(texto.IsError); // True.

public sealed class StockError(string productCode) : Error("Stock insuficiente.")
{
    public string ProductCode { get; } = productCode;
}

La variante sin valor es VoidResult<TError>, con fábricas Ok() y Fail(error). No exige constructor sin parámetros en el error: entregas la instancia.

Map conserva TError. Las sobrecargas tipadas de Bind encadenan resultados con el mismo TError. Si ensanchas la variable a Result<TValue> o Result, sus consultas y extensiones se resuelven desde ese tipo menos específico.

Recuerda: TError describe la raíz, no todos los descendientes.

Para colecciones con error tipado, consulta conservar el tipo de colección.

Uso personal limitado. Uso comercial sujeto a autorización escrita.