是否可以將Enum元素作爲事件參數傳遞?將枚舉元素傳遞爲事件參數C#
比方說,我有..
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的不同類,然後在類中創建枚舉,字段和屬性。然後將後者的一個實例放入我的類「Letters」(在上面的代碼中使用)。
但是,是不是瘋了?一定有更好的方法。請告訴我有一個更簡單的方法。
順便說一下,我不知道上面的代碼是否會編譯我只是直接在編輯器中編寫它,因爲我現在不在我的開發計算機上。
代碼的複雜性是主觀的。但是,爲了標準化應用程序之間的對話,應遵守編碼標準。如果您的應用程序不會被任何其他庫使用,請停止閱讀此處。標準事件委託簽名是有原因的 - 即'EventHandlerMethod(object sender,EventArgs e)'。再一次,這是主觀的,但是如果有可能這個圖書館會被另一個圖書館和另一個圖書館生成的事件被另一個圖書館使用,那麼偏離這種做法是不好的做法。請參閱https://msdn.microsoft.com/en-us/library/ms182133.aspx – IAbstract