CallMeMaybe 0.7.1
dotnet add package CallMeMaybe --version 0.7.1
NuGet\Install-Package CallMeMaybe -Version 0.7.1
<PackageReference Include="CallMeMaybe" Version="0.7.1" />
paket add CallMeMaybe --version 0.7.1
#r "nuget: CallMeMaybe, 0.7.1"
// Install CallMeMaybe as a Cake Addin #addin nuget:?package=CallMeMaybe&version=0.7.1 // Install CallMeMaybe as a Cake Tool #tool nuget:?package=CallMeMaybe&version=0.7.1
Provides a class and a few extension methods to facilitate common operations with values that may or may not exist.
Traditionally, programmers often use `null` references to represent values that "aren't there", but the problem is that this was never their intended purpose.
- Languages like C# don't provide a way to differentiate between reference variables that can be null and those that are guaranteed not to be.
- The inventor of null references has [apologized](http://en.wikipedia.org/wiki/Tony_Hoare#Quotations) for creating them in the first place, calling them his "billion-dollar mistake."
- This misuse of null references has spread far and wide, leading to the unfortunately-named `Nullable<>` type (which, being a value type, is never actually null), and attributes like `[CanBeNull]` and `[NotNull]` to help programmers know when they can expect a method to treat a null value as legitimate input.
All this leaves us in a position where our best hope of avoiding `NullReferenceException`s lies in trying to make sure that our reference variables are *never* null. But in that case, how do we indicate when a value is *optional*?
Well, that's where `Maybe<>` comes in.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.4 is compatible. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CallMeMaybe:
Package | Downloads |
---|---|
CallMeMaybe-LINQPad
Some usage samples to help you get the hang of the Maybe<> type and associated extension methods which are available in the CallMeMaybe library. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.7.1 | 11,120 | 12/31/2018 |
0.7.0 | 4,850 | 5/14/2018 |
0.6.8 | 2,227 | 10/11/2017 |
0.6.7 | 938 | 10/10/2017 |
0.6.6 | 1,039 | 8/31/2017 |
0.6.2 | 2,889 | 5/11/2016 |
0.6.1 | 1,803 | 5/3/2015 |
0.6.0 | 1,378 | 5/2/2015 |
0.5.0 | 2,097 | 2/7/2015 |
0.4.0 | 1,770 | 12/29/2014 |
0.3.5318 | 1,353 | 7/25/2014 |
0.3.5303 | 1,257 | 7/9/2014 |
0.3.5252 | 1,376 | 5/20/2014 |
0.2.5199 | 1,503 | 3/28/2014 |
0.1.5178 | 1,310 | 3/7/2014 |
v0.7.1 - Added copyright and other project information to assembly.
v0.7.0 - `Do()` returns the source `Maybe` to allow chaining. Added `ElseDo()`.
v0.6.8 - Bug fixes
v0.6.7 - CallMeMaybe is ClsCompliant again.
v0.6.6 - Added `SelectMany` overload.
v0.6.2 - CallMeMaybe is now ClsCompliant
v0.6.1 - Included XML documentation
v0.6 Beta.
- Added parsers, with a couple of basic parsing extension methods.
- Added OfType<>().
- Added FirstMaybe() and SingleMaybe() extension methods.
- Added a lot of XML documentation comments.
v 0.5 Alpha. **Breaking Change**: object.Equals() override behaves differently now. Prefer `==` or `Is()` instead.
v 0.4 Alpha. Added "Is()" method, and "Values()" extension method, plus lots of comments.
v 0.3.5318 Alpha. Added better conversion to/from Nullables. Maybe IMaybe interface public. Added LINQPad sample.
v 0.3 Alpha release. Added Do() methods and an Else() overload that takes a function parameter. More correct handling of null arguments. And documentation on most of the types and methods!
v 0.2 Alpha release. API subject to change (but probably not as much as it did last time).
v 0.1 Alpha release. API subject to change.