StatePrinter icon indicating copy to clipboard operation
StatePrinter copied to clipboard

Improved Enum output

Open ThranMaru opened this issue 6 years ago • 1 comments
trafficstars

I noticed, that Enum.GetName(Type, object) gives empty string for values that are not defined in the enum. Those can exist in C#. The ways to create them are the Enum.Parse method and explicit conversion from numeric type (EnumType)42. And because this can lead to errors and confusions, it's especially important that they print out. Furthermore, empty string is even returned for combined values of enum, even though it has the [Flags] attribute (EnumType.Flag1 | EnumType.Flag2), if they're not named (Flag1And2 = Flag1 | Flag2). Proposed method of using ToString() solves both these issues by printing numeric value for unnamed values (e.g. "42") and even recognizing when the enum is defined with Flags and the value consist of combination of them and providing list (e.g. "Flag1, Flag2").

ThranMaru avatar Feb 15 '19 14:02 ThranMaru

Hi @ThranMaru

Many thanks for the PR. Can I ask you add some unit tests so we ensure we have covered all corner cases etc?

cheers

kbilsted avatar Feb 15 '19 19:02 kbilsted