A collection of tools for dealing with nulls, failures and the generic type issues that arise in this domain.

https://github.com/Andy3432344/SafeResults

I’m the author, let me know what you think!

*Edit: updated to show GitHub link, sorry!

You are viewing a single thread.
View all comments View context
2 points

Nulls are famously called the billion dollar mistake, and for good reason.

Option types are the answer to that problem, because they make the optionality explicit and require one to handle it or propagate it.

That being said: as someone that does functional programming professionally, this looks kinda janky, to me. But the good news is that C# is actually adding support for discriminated unions finally (seriously, it’s been waaaay too damn long): https://github.com/dotnet/csharplang/blob/18a527bcc1f0bdaf542d8b9a189c50068615b439/proposals%2FTypeUnions.md

With discriminated unions, you can finally comfortably work with Option/Result types natively.

permalink
report
parent
reply
1 point

Are there any updates on DUs in C#? I feel like the linked proposal was opened a decade ago by now.

permalink
report
parent
reply
3 points

Null pointers are one thing, C# nulls (with nullable reference types enabled) are another. They behave a lot like an Option monad with the caveat that the static analysis can technically be tricked by incorrect hints.

permalink
report
parent
reply
2 points

I very much disagree with this, Null Reference Exceptions have been a huge problem in c#. Nullable reference types are a partial fix, but the question of “how do I ‘return’ an error from a statically typed method” is not answered there.

permalink
report
parent
reply

C Sharp

!csharp@programming.dev

Create post

A community about the C# programming language

Getting started

Useful resources

IDEs and code editors

Tools

Rules

  • Rule 1: Follow Lemmy rules
  • Rule 2: Be excellent to each other, no hostility towards users for any reason
  • Rule 3: No spam of tools/companies/advertisements

Related communities

Community stats

  • 67

    Monthly active users

  • 65

    Posts

  • 52

    Comments