https://github.com/jason-c-daniels/jcd.richenumerations
A library to ease the implementation and use of Rich Enumerations popularized by DDD.
https://github.com/jason-c-daniels/jcd.richenumerations
csharp-lib ddd dotnet richenum richenumerations
Last synced: 10 months ago
JSON representation
A library to ease the implementation and use of Rich Enumerations popularized by DDD.
- Host: GitHub
- URL: https://github.com/jason-c-daniels/jcd.richenumerations
- Owner: jason-c-daniels
- License: mit
- Created: 2024-02-16T18:16:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T08:14:25.000Z (over 1 year ago)
- Last Synced: 2024-04-14T10:15:28.964Z (over 1 year ago)
- Topics: csharp-lib, ddd, dotnet, richenum, richenumerations
- Language: C#
- Homepage:
- Size: 464 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Jcd.RichEnumerations
A *netstandard2.0* library that provides DDD-style rich enumeration base types for both _plain old
classes_ and `record` types.
## Examples
```csharp
// 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(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
[](https://github.com/jason-c-daniels/Jcd.RichEnumerations/blob/main/LICENSE)
[](https://ci.appveyor.com/project/jason-c-daniels/https://ci.appveyor.com/project/jason-c-daniels/jcd-richenumerations)
[](https://www.codefactor.io/repository/github/jason-c-daniels/Jcd.RichEnumerations)
[](https://www.myget.org/feed/jason-c-daniels/package/nuget/Jcd.RichEnumerations)
[](https://www.nuget.org/packages/Jcd.RichEnumerations)
[](https://github.com/jason-c-daniels/Jcd.RichEnumerations/blob/main/docs/api/index.md)
[](https://github.com/jason-c-daniels/Jcd.RichEnumerations/blob/main/docs/user/index.md)