All Versions
Latest Version
Avg Release Cycle
113 days
Latest Release
982 days ago

Changelog History
Page 1

  • v3.0.3 Changes

    January 23, 2020
    • ๐Ÿ›  Fix infinite loop when enumerating unsigned enum flags that are near the underlying type's max value.
  • v3.0.2 Changes

    December 06, 2019
    • ๐Ÿ‘Œ Improved flag bitwise operations performance to only about 20% slower than native.
  • v3.0.1 Changes

    November 11, 2019
    • ๐Ÿ‘Œ Improved parsing performance.
    • ๐Ÿ›  Fixed empty string flag parsing bug.
  • v3.0.0 Changes

    November 02, 2019

    ๐Ÿ†• New Features

    • โž• Added C# 8 nullable reference annotations throughout.
    • โฌ‡๏ธ Reduced default memory usage by over 83% by minimizing generic code over the enum type, due to value type generic argument code explosion.
    • ๐Ÿ‘Œ Improved performance throughout.
    • โž• Added ReadOnlySpan<char> parsing support when targeting .NET Core 3.0+.

    ๐Ÿ’ฅ Breaking Changes

    • GetNames, GetValues, GetMembers, GetFlags, and GetFlagMembers now all return an IReadOnlyList<T> instead of IEnumerable<T>.
    • ๐Ÿšš Since IReadOnlyList<T> was added in .NET Framework 4.5, support for prior .NET Framework versions has been removed.
    • ๐Ÿ— .NET Standard builds now depend on the System.Runtime.CompilerServices.Unsafe package for efficient conversions between the enum and its underlying type instead of relying on Fody to implement that.
    • ๐Ÿ“ฆ NonGenericEnums, NonGenericFlagEnums, UnsafeEnums, and UnsafeFlagEnums are now deprecated and will be removed in v4.0. The equivalent methods have been added to the Enums and FlagEnums classes with the unsafe versions having the suffix of Unsafe to avoid a naming conflict with the type-safe versions. This was done to better match System.Enum and provide better discoverability being more centralized. I've created the C# roslyn analyzer Enums.NET.Analyzer which provides a code fix to migrate your usages of the non-generic and unsafe methods to the new methods.
    • ๐Ÿ‘ Nullable enum types are not supported in the new non-generic methods but are still supported when using NonGenericEnums and NonGenericFlagEnums.
    • ๐Ÿšš Deprecated many convenience method overloads as there were getting to be too many and will be removed in v4.0.
    • ๐Ÿšš NonGenericEnumComparer and UnsafeEnumComparer were removed, use EnumComparer.GetInstance and EnumComparer<TEnum>.Instance instead. EnumComparer<TEnum>'s TEnum type argument is no longer constrained to struct, Enum to support this.
    • ๐Ÿšš A few TryToObject overloads were removed due to there being too many convenience method overloads.
  • v2.3.2 Changes

    June 23, 2018

    ๐Ÿ†• New Features

    • โž• Added SourceLink support.
    • โœจ Enhanced Unity compatibility with AOT compilation.
    • ๐Ÿ‘‰ Uses C# 7.3's built-in support for the Enum constraint.
  • v2.3.1 Changes

    December 18, 2017

    ๐Ÿ›  Fix

    • ๐Ÿ›  Fixed issue with using Enums.NET from a .NET Standard or .NET Core 1.x project.
  • v2.3.0 Changes

    November 21, 2017

    ๐Ÿ†• New Features

    • โž• Added GetFlagCount support.
    • โž• Added EnumFormat parameter overloads for parsing to prevent array allocations.
    • โž• Added .NET Standard 2.0 Build.
  • v2.2.0 Changes

    June 06, 2017

    ๐Ÿ†• New Features

    • โž• Added CombineFlags(IEnumerable<TEnum> flags) overload.

    ๐Ÿ›  Fix

    • ๐Ÿ›  Fixed memory allocation regression on enumerating members which was introduced in 2.1.1.
  • v2.1.1 Changes

    March 25, 2017

    ๐Ÿ†• New Features

    • โž• Added direct support for DisplayAttribute. The name has been added as EnumFormat.DisplayName and the order is respected using the flag EnumMemberSelection.DisplayOrder.
    • โž• Added a GetAttributes enum extension method for convenience.
    • โž• Added .NET Standard 1.1 as a target due to DisplayAttribute.
  • v2.0.0 Changes

    January 01, 2017

    ๐Ÿš€ The goal of this release was to align the API with a proposal to merge its features into corefx.

    ๐Ÿ†• New Features

    • โž• Added EnumMemberSelection enum to replace the boolean parameter excludeDuplicates in the GetEnumMembers, GetEnumMemberCount, GetNames, and GetValues methods. The boolean parameter version of these methods are still there to allow easy migration but are obsoleted and will be removed in a future version.
    • โž• Added EnumValidation enum to replace the boolean parameter validate in the ToObject and TryToObject methods. The boolean parameter version of these methods are still there to allow easy migration but are obsoleted and will be removed in a future version.
    • โž• Added Boolean and Char backed enum support which are supported in C++/CLI and F# respectively.

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”„ Changed EnumMember's Attributes from an IEnumerable<Attribute> to an AttributeCollection. Obsoleted GetAttribute, HasAttribute, and GetAttributes from EnumMember as this functionality is now encapsulated in AttributeCollection's Get, Has, and GetAll methods. The obsoleted methods will be removed in a future version but are still there for easy migration.
    • ๐Ÿ‘ Renumbered EnumFormat values to accommodate the new UnderlyingValue member introduced to support Boolean and Char backed enums.
    • ๐Ÿšš Renamed GetEnumMembers, GetEnumMemberCount, and GetEnumMember to GetMembers, GetMemberCount, and GetMember respectively. The old versions are still there to allow easy migration but are obsoleted and will be removed in a future version.