MSMDotNet.Result
1.0.0
dotnet add package MSMDotNet.Result --version 1.0.0
NuGet\Install-Package MSMDotNet.Result -Version 1.0.0
<PackageReference Include="MSMDotNet.Result" Version="1.0.0" />
<PackageVersion Include="MSMDotNet.Result" Version="1.0.0" />
<PackageReference Include="MSMDotNet.Result" />
paket add MSMDotNet.Result --version 1.0.0
#r "nuget: MSMDotNet.Result, 1.0.0"
#:package MSMDotNet.Result@1.0.0
#addin nuget:?package=MSMDotNet.Result&version=1.0.0
#tool nuget:?package=MSMDotNet.Result&version=1.0.0
Result Pattern in C#
Este repositorio implementa el patrón Result en C#, una forma segura y expresiva de manejar operaciones que pueden fallar sin recurrir a excepciones.
✨ Características
Result: representa el estado de éxito o error. No incluye un valor en caso de éxito, pero sí instancias deErroren caso de fallo.Result<TSuccess>: versión genérica que encapsula un valor cuando la operación es exitosa, o instancias deErrorsi falla.Result<TSuccess, TError>: versión genérica que encapsula un valor de éxito o un error fuertemente tipado.- Métodos
Matchpermiten manejar ambos estados (éxito y error) de forma funcional y expresiva. - Propiedades
IsSuccessyIsFailurefacilitan la inspección rápida del estado del resultado. - Pruebas unitarias completas con xUnit para garantizar la confiabilidad del patrón.
🧪 Pruebas incluidas
Las pruebas cubren:
- ✅ Creación de resultados exitosos y fallidos
- ✅ Validación de propiedades (
IsSuccess,IsFailure) - ✅ Comportamiento de
Matchcon funciones y acciones - ✅ Acceso seguro a
ValueyError(con excepciones en estado incorrecto)
🛠️ Ejemplos de uso
var result = Result<string, string>.Ok("Orden creada");
var mensaje = result.Match(
onSuccess: val => $"Éxito: {val}",
onError: err => $"Error: {err}"
);
var result = Result<string>.Fail("Falló la operación");
result.Match(
onSuccess: () => Console.WriteLine("¡Éxito!"),
onError: r => Console.WriteLine($"Error: {r.ErrorMessage}")
);
📚 Motivación
El patrón Result permite:
- Evitar excepciones para control de flujo
- Expresar claramente el éxito o fracaso de una operación
- Facilitar pruebas y composición funcional
🧰 Requisitos
- El código ha sido implementado con .NET 9.
- xUnit para pruebas
¡Contribuciones y sugerencias son bienvenidas!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 248 | 9/26/2025 |
Versión inicial 1.0.0:
- Implementación del patrón Result en C#.
- Incluye Result, Result<T>, y Result<TSuccess,TError>.
- Métodos Match para manejar éxito y error de forma funcional y segura.
- Propiedades IsSuccess e IsFailure para inspección rápida del estado.
- Ejemplos de uso incluidos para escenarios simples y con invocación de funciones.
- Pruebas unitarias completas con xUnit para garantizar confiabilidad.
- Licencia MIT incluida.