Jcd.RichEnumerations 0.2.16-alpha

Prefix Reserved
This is a prerelease version of Jcd.RichEnumerations.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Jcd.RichEnumerations --version 0.2.16-alpha                
NuGet\Install-Package Jcd.RichEnumerations -Version 0.2.16-alpha                
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="Jcd.RichEnumerations" Version="0.2.16-alpha" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Jcd.RichEnumerations --version 0.2.16-alpha                
#r "nuget: Jcd.RichEnumerations, 0.2.16-alpha"                
#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.
// Install Jcd.RichEnumerations as a Cake Addin
#addin nuget:?package=Jcd.RichEnumerations&version=0.2.16-alpha&prerelease

// Install Jcd.RichEnumerations as a Cake Tool
#tool nuget:?package=Jcd.RichEnumerations&version=0.2.16-alpha&prerelease                

Jcd.RichEnumerations

A netstandard2.0 library that provides DDD-style rich enumeration base types for both plain old classes and record types.

Examples

// define the rich enum type.

using Jcd.RichEnumerations.Wrappers

// Derive from a simplifying wrapper. In this case one that already defines the description property.
public class MyRichEnum(int value, string description) : DescribedRichEnum<MyRichEnum>(value,description)
{
   public static readonly MyRichEnum Item1 = new(1, "Item 1");
   public static readonly MyRichEnum Item2 = new(2, "Item 2");
   public static readonly MyRichEnum Item3 = new(3, "Item 3");
}

// use the values
int userInput = GetUserInput();

// use the conversion operator to convert the raw number into an instance of the RichEnum.
var  ev = (MyRichEnum) userInput;

if (ev == MyRichEnum.Item1) {
   //.. do something specific to Item1 being selected.
}

Badges

GitHub Build status CodeFactor Grade

MyGet Nuget

API Docs User Guide

Product 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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  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 tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Jcd.RichEnumerations:

Package Downloads
Jcd.Units

Provides types and extensions methods for unit of measure based, quantity comparisons, conversions, and arithmetic, as well as an extensive unit of measure catalog.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.2.51 168 8/24/2024
0.2.48 81 8/5/2024
0.2.39 97 8/1/2024
0.2.33 80 7/27/2024
0.2.29 76 7/27/2024
0.2.24 154 4/14/2024
0.2.16-alpha 107 4/14/2024
0.1.13 117 4/13/2024
0.1.0 136 4/9/2024