我有一個接口方法在C#中,如何在不知道類型的情況下向下轉換以前上傳的對象?
public void Execute(ICommand command);
其需要的ICommand
已知亞型傳遞給apropriate Handle(SpecificCommand command)
方法實現,做未知類型的一些通用的處理。我要尋找一個通用的(即不需要巨大的switch)這樣做,類似的方法來
Handle(command as command.GetType()); // this obviously does not compile
我知道我能以某種方式註冊的處理程序,例如將它們作爲委託存儲在字典中,但這仍然需要重複處理邏輯(一次在特定的Handle(...)
方法簽名中,一次在委託請求中)。如果我通過反思來檢查我的課程來填充詞典(查找Handle(XXX command)
方法),我會得到一個性能優勢。總結:如何在不知道編譯時的哪種類型的情況下,通過調用Execute(ICommand command)
來調用一個需要具體類型的方法。
我的問題是,我想要自定義行爲,不僅具體到某種類型,還特定於此類型的消費者。 – skolima 2008-12-02 11:22:02