我有一個抽象類Capability
它模擬物理設備的每個功能。然後我有一些子類,如InputSwitch
和TemperatureSensor
,它們可以分別觸發不同的事件。在運行時枚舉類的事件
InputSwitch
非常簡單 - 當按下物理開關時,表示它的對象引發事件Triggered
。
TemperatureSensor
稍微複雜一些,它有兩個事件 - TemperatureOK
和TemperatureAlarm
。
不僅僅是這兩個子類,每個子類都有不同的事件可以引發。運行時可能會添加更多的子實例。
最終用戶需要能夠指定當這些事件被觸發時發生什麼(如果有的話),所以基本上我正在考慮允許用戶瀏覽所有Capability
實例中的可能事件。每個功能當前存儲在List<Capability>
中。
有沒有方法來枚舉可用的事件?
我不認爲使用反射來獲取所有事件的列表是一種可行的方法。如果添加不應選擇的事件怎麼辦?使用手動定義的事件列表。 –
我不明白你想要什麼,你想列舉你的班級的事件嗎?或者只是提出一個類的實例的事件? –
@TimSchmelter - 我明白你的意思,但這些類是專門設計的,以便所有事件都可供最終用戶分配操作。我真的不想重複到手動定義列表。 @DotNeter - 一個類的每個實例的可用事件 - 所以每個'TemperatureSensor'實例都有兩個事件'TemperatureOK'和'TemperatureAlarm'列出來,等等。 –