Apariencia
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
| Miembro | En éxito | En fallo |
|---|---|---|
TryGetValue(out valor) | true y el valor | false y el valor predeterminado de T |
Value | El valor | Lanza InvalidOperationException |
ValueOrDefault(alternativa) | El valor | La 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.