Передать элементы перечисления как аргументы событий 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, а затем создать перечисление, поле и свойство прямо в классе. А затем сделайте экземпляр последнего в мой класс «Письма» (используется в коде выше).
Но разве это не сумасшествие? Там должен быть лучший путь. Пожалуйста, скажите мне, что есть более простой способ.
Кстати, я не знаю, скомпилируется ли приведенный выше код, я просто написал его прямо в редакторе, так как сейчас я не на своем компьютере разработчика.