ardalis/SmartEnum

Add source generator

Ouverte

#259 ouverte le 18 avr. 2022

 (7 commentaires) (5 réactions) (0 personne assignée)C# (185 forks)github user discovery
enhancementgood first issuehelp wanted

Métriques du dépôt

Stars
 (2 420 étoiles)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

This could be improved further with source generators:

Allowing you to just decorate a partial class like so:

using Ardalis.SmartEnum;

[SmartEnum]
public sealed partial class TestEnum
{
    [EnumMember]
    public static readonly TestEnum One;

    [EnumMember]
    public static readonly TestEnum Two;

    [EnumMember]
    public static readonly TestEnum Three;
}

Generated code:

using Ardalis.SmartEnum;

sealed partial class TestEnum : SmartEnum<TestEnum>
{
    private TestEnum(string name, int value) : base(name, value)
    {
        One = new TestEnum(nameof(One), 1);
        Two = new TestEnum(nameof(Two), 2);
        Three = new TestEnum(nameof(Three), 3);
    }
}

Guide contributeur