$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskManagement.Domain.Common.Result< T > Class Template Reference

Result es un tipo de unión discriminada que implementa el patrón Result para manejo de errores. More...

Inheritance diagram for TaskManagement.Domain.Common.Result< T >:
Collaboration diagram for TaskManagement.Domain.Common.Result< T >:

Public Member Functions

Result(T value) Result(IEnumerable< string > errors) TResult Match< TResult > (Func< T, TResult > onSuccess, Func< IReadOnlyList< string >, TResult > onFailure)
 

Static Public Member Functions

static Result Success ()
 
static Result Failure (string error)
 
static Result Failure (IEnumerable< string > errors)
 
static Result< T > Success< T > (T value)
 
static Result< T > Failure< T > (string error)
 
static Result< T > Failure< T > (IEnumerable< string > errors)
 

Protected Member Functions

 Result (bool isSuccess, IEnumerable< string >? errors=null)
 

Properties

bool IsSuccess [get]
 
bool IsFailure [get]
 
IReadOnlyList< string > Errors [get]
 
T? Value [get]
 

Detailed Description

Result es un tipo de unión discriminada que implementa el patrón Result para manejo de errores.

Result< T > es un tipo de unión discriminada genérico para operaciones que devuelven un valor en caso de éxito.

Rol en Clean Architecture:

  • Parte del core en la capa del dominio
  • Reemplaza excepciones con retornos explícitos de éxito o fracaso
  • Habilita manejo de errores funcional en toda la aplicación
  • Previene que errores ocultos se lancen y capturen inesperadamente
  • Proporciona una forma consistente de manejar operaciones que pueden fallar

Beneficios del patrón:

  • Manejo de errores explícito: Los llamadores deben verificar éxito o fracaso
  • El tipo genérico Result< T > preserva tanto el valor de éxito como información de error
  • Evita verificaciones de null: siempre devuelve un objeto Result válido
  • Rendimiento: Evita la sobrecarga de desenrollado de pila de excepciones

Uso:

  • Utilizar Result para operaciones que no deben lanzar excepciones
  • Utilizar Result< T > cuando la operación devuelve un valor en caso de éxito
  • Coincidencia de patrones con Result.IsSuccess y Result.Errors para manejar ambos casos
  • Utilizar método Result< T >.Match para manejo de errores de estilo funcional
Template Parameters
TEl tipo del valor devuelto en caso de éxito

Hereda de Result y agrega una propiedad Result< T >.Value para el caso de éxito.

Definition at line 70 of file Result.cs.

Constructor & Destructor Documentation

◆ Result()

TaskManagement.Domain.Common.Result< T >.Result ( bool  isSuccess,
IEnumerable< string >?  errors = null 
)
protected

Definition at line 48 of file Result.cs.

Member Function Documentation

◆ Failure() [1/2]

static Result TaskManagement.Domain.Common.Result< T >.Failure ( IEnumerable< string >  errors)
static

◆ Failure() [2/2]

static Result TaskManagement.Domain.Common.Result< T >.Failure ( string  error)
static
Here is the caller graph for this function:

◆ Failure< T >() [1/2]

static Result< T > TaskManagement.Domain.Common.Result< T >.Failure< T > ( IEnumerable< string >  errors)
static

◆ Failure< T >() [2/2]

static Result< T > TaskManagement.Domain.Common.Result< T >.Failure< T > ( string  error)
static

◆ Match< TResult >()

Result(T value) Result(IEnumerable< string > errors) TResult TaskManagement.Domain.Common.Result< T >.Match< TResult > ( Func< T, TResult< T > >  onSuccess,
Func< IReadOnlyList< string >, TResult< T > >  onFailure 
)

Definition at line 77 of file Result.cs.

◆ Success()

static Result TaskManagement.Domain.Common.Result< T >.Success ( )
static
Here is the caller graph for this function:

◆ Success< T >()

static Result< T > TaskManagement.Domain.Common.Result< T >.Success< T > ( value)
static

Property Documentation

◆ Errors

IReadOnlyList<string> TaskManagement.Domain.Common.Result< T >.Errors
get

Definition at line 45 of file Result.cs.

◆ IsFailure

bool TaskManagement.Domain.Common.Result< T >.IsFailure
get

Definition at line 44 of file Result.cs.

◆ IsSuccess

bool TaskManagement.Domain.Common.Result< T >.IsSuccess
get

Definition at line 41 of file Result.cs.

◆ Value

Definition at line 72 of file Result.cs.


The documentation for this class was generated from the following file: