Skip to content

Result<T>: devolver y leer un valor ​

Result<T> contiene un valor en éxito o un error en fallo.

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

var resultado = LeerCantidad("12");
if (resultado.TryGetValue(out var cantidad))
    Console.WriteLine(cantidad); // 12.
else
    Console.WriteLine(resultado.Error.Message);

static Result<int> LeerCantidad(string texto)
{
    return int.TryParse(texto, out var cantidad) && cantidad > 0
        ? Result<int>.Ok(cantidad)
        : Result<int>.Fail(Error.Create("Se requiere un entero positivo."));
}

Tres formas de leer ​

MiembroEn éxitoEn fallo
TryGetValue(out valor)true y el valorfalse y el valor predeterminado de T
ValueEl valorLanza InvalidOperationException
ValueOrDefault(alternativa)El valorLa alternativa

T tiene restricción notnull; Ok(null) también se rechaza en ejecución. Para «no encontrado», define un fallo u otro contrato explícito. Un éxito con 0, false o una colección vacía sí es válido.

Recuerda: el booleano de TryGetValue determina el éxito; el valor por sí solo no lo determina.

Siguiente: leer el error o transformar el valor.

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