Skip to content

Conversation

@ThranMaru
Copy link

@ThranMaru ThranMaru commented Feb 15, 2019

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").

I noticed, that `Enum.GetName(Type, object)` prints 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"`).
@kbilsted
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants