Elemente als Ereignisargumente übergeben C #

Ist es möglich, Enum-Elemente als Ereignisargumente zu übergeben?

Sagen wir, ich habe ..

public class Letters
{
    public delegate void StateChangedEventHandler(object sender, EventArgs e);
    public event StateChangedEventHandler StateChanged;

    public AbcState state = AbcState.Aaa;     
    public AbcState State
    {
        get{return this.state;}
        set
        {
            this.state = value;
            this.OnStateChanged();
        }
    }

    public enum AbcState
    {
        Aaa,
        Bbb,
        Ccc
    }

    protected virtual void OnStateChanged()
    {
        StateChanged?.Invoke(this, State);
    }

See, wie ich versuche, das Element der Aufzählung als Ereignisargument zu übergeben? Normalerweise würde ich jetzt eine Klasse erstellen und EventArgs erweitern, und dann könnte ich die Klasse selbst übergeben. Und ich weiß, dass ich hier dasselbe tun könnte: Erstellen Sie eine andere Klasse, die EventArgs erweitert, und erstellen Sie dann die Aufzählung, das Feld und die Eigenschaft direkt in der Klasse. Und dann mache ich aus letzterem eine Instanz meiner Klasse "Letters" (im obigen Code verwendet).

Aber ist das nicht verrückt? Es muss einen besseren Weg geben. Bitte sag mir, dass es einen einfacheren Weg gibt.

Durch die Art und Weise, wie ich nicht weiß, ob der obige Code kompiliert werden würde, habe ich ihn direkt im Editor geschrieben, da ich gerade nicht auf meinem Entwicklercomputer bin.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage