Skip to content

Improved Enum output #63

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Improved Enum output #63

wants to merge 2 commits into from

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