MSMDotNet.Result 1.0.0

dotnet add package MSMDotNet.Result --version 1.0.0
                    
NuGet\Install-Package MSMDotNet.Result -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MSMDotNet.Result" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MSMDotNet.Result" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="MSMDotNet.Result" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MSMDotNet.Result --version 1.0.0
                    
#r "nuget: MSMDotNet.Result, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MSMDotNet.Result@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MSMDotNet.Result&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=MSMDotNet.Result&version=1.0.0
                    
Install as a Cake Tool

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 de Error en caso de fallo.
  • Result<TSuccess>: versión genérica que encapsula un valor cuando la operación es exitosa, o instancias de Error si falla.
  • Result<TSuccess, TError>: versión genérica que encapsula un valor de éxito o un error fuertemente tipado.
  • Métodos Match permiten manejar ambos estados (éxito y error) de forma funcional y expresiva.
  • Propiedades IsSuccess y IsFailure facilitan 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 Match con funciones y acciones
  • ✅ Acceso seguro a Value y Error (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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.