FunSharp 1.0.8

FunSharp  - Railway oriented programming library in C#.

Provides a functional programming approach to handle exceptions in an elegant way and to avoid NullReferenceExceptions.

There is a newer version of this package available.
See the version list below for details.
Install-Package FunSharp -Version 1.0.8
dotnet add package FunSharp --version 1.0.8
<PackageReference Include="FunSharp" Version="1.0.8" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FunSharp --version 1.0.8
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FunSharp, 1.0.8"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install FunSharp as a Cake Addin
#addin nuget:?package=FunSharp&version=1.0.8

// Install FunSharp as a Cake Tool
#tool nuget:?package=FunSharp&version=1.0.8
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

FunSharp

FunSharp oferece uma abordagem funcional para o tratamento de erros em .Net, através de RailWay Oriented Programming.

Ao invés de:

public Pessoa ObterPessoa(int id)
{
    try
    {
        return repository.ObterPessoa(id);
    }
    catch(Exception ex)
    {
       return null;
    }
}

// Consumindo o método acima:
var pessoa = ObterPessoa(id);
if (pessoa == null)
{
   // lógica para null
}
else
{
   // lógica para diferente de null
}

Com FunSharp, você faz assim:

using static FunSharp.TryFunctions;

public Res<Pessoa> ObterPessoa(int id)
    => Try(() => repository.ObterPessoa(id), "Erro ao obter pessoa.");

// Consumindo o método acima:
ObterPessoa(id)
  .Match(
      some: p => 
      {
         // lógica para quando há retorno de valor.
      },
      error: err =>
      {
         // Tratamento do erro (mensagens, log, etc)
      },
      none: _ =>
      {
         // Lógica para quando não retorna valor (nulo).
      }
  );

FunSharp

FunSharp oferece uma abordagem funcional para o tratamento de erros em .Net, através de RailWay Oriented Programming.

Ao invés de:

public Pessoa ObterPessoa(int id)
{
    try
    {
        return repository.ObterPessoa(id);
    }
    catch(Exception ex)
    {
       return null;
    }
}

// Consumindo o método acima:
var pessoa = ObterPessoa(id);
if (pessoa == null)
{
   // lógica para null
}
else
{
   // lógica para diferente de null
}

Com FunSharp, você faz assim:

using static FunSharp.TryFunctions;

public Res<Pessoa> ObterPessoa(int id)
    => Try(() => repository.ObterPessoa(id), "Erro ao obter pessoa.");

// Consumindo o método acima:
ObterPessoa(id)
  .Match(
      some: p => 
      {
         // lógica para quando há retorno de valor.
      },
      error: err =>
      {
         // Tratamento do erro (mensagens, log, etc)
      },
      none: _ =>
      {
         // Lógica para quando não retorna valor (nulo).
      }
  );

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FunSharp:

Package Downloads
Bragil.Core
Interfaces e funcionalidades básicas para o desenvolvimento de aplicações.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.0.11 196 7/21/2020
1.0.10 283 3/5/2020
1.0.9 230 1/14/2020
1.0.8 211 1/14/2020
1.0.7 198 11/22/2019
1.0.6 203 10/11/2019
1.0.5 273 6/6/2019
1.0.4 281 6/6/2019
1.0.3 276 6/6/2019
1.0.2 275 4/26/2019
1.0.1 296 4/26/2019
1.0.0 300 4/25/2019