Skip to content

aimenux/EnumConverterDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.NET

EnumConverterDemo

Experimenting enum type converters

In this demo, i m experimenting ways of conversion from enums (decorated with EnumMember) to strings

The enum converter should support the following cases :

📌 From string enum value To enum value

📌 From string integer enum value To enum value

📌 From string enum member value value To enum value

The built-in implementation EnumConverter provided by microsoft don't support the last case about EnumMember

In order to support all the cases, i m testing and benchmarking two implementations :

1️⃣ StringEnumConverter

2️⃣ CachedStringEnumConverter

|                         Method |        Mean |       Error |      StdDev |      Median |         Min |         Max | Rank |  Gen 0 | Allocated |
|------------------------------- |------------:|------------:|------------:|------------:|------------:|------------:|-----:|-------:|----------:|
| UsingCachedStringEnumConverter |    850.0 ns |    32.96 ns |    95.62 ns |    837.3 ns |    683.3 ns |  1,102.1 ns |    1 | 0.0229 |      96 B |
|       UsingStringEnumConverter | 27,620.3 ns | 1,816.07 ns | 5,151.88 ns | 25,850.7 ns | 21,417.7 ns | 43,805.8 ns |    2 | 1.0986 |   4,818 B |

Tools : vs22, net 6.0, xunit, fluent-assertions, benchmark-dotnet