Передать элементы перечисления как аргументы событий C #

Можно ли передать элементы Enum в качестве аргументов события?

Допустим, у меня есть ..

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);
    }

Видите, как я пытаюсь передать элемент перечисления в качестве аргумента события? Теперь я обычно создаю класс и расширяю EventArgs, и тогда я смогу передать сам класс. И я знаю, что мог бы сделать то же самое здесь: создать другой класс, расширяющий EventArgs, а затем создать перечисление, поле и свойство прямо в классе. А затем сделайте экземпляр последнего в мой класс «Письма» (используется в коде выше).

Но разве это не сумасшествие? Там должен быть лучший путь. Пожалуйста, скажите мне, что есть более простой способ.

Кстати, я не знаю, скомпилируется ли приведенный выше код, я просто написал его прямо в редакторе, так как сейчас я не на своем компьютере разработчика.

Ответы на вопрос(3)

Ваш ответ на вопрос