2013-07-31 77 views
-4

我有類如何檢查類型參數?

class ManagerCar : IBlalba 
{ 
    public void Render(IViewTemplate template) 
    { 
    } 
} 

,我知道參數模板是什麼CarViewTemplate我想檢查類型和拋出異常,如果IViewTemplate != CarViewTemplate

我可以做檢查if(template is typeof(CarViewTemplate))。我有很多Managers

我想檢查彙編,並與像[IsType(typeof(CarViewTemplate))]

是否有可能幫助屬性這種類型的?

UPDATE 我有Render(IViewTemplate template)

+5

如果您不能使用'IViewTemplate',不接受一個。您正在查找的編譯時檢查是「CarViewTemplate模板」。 – Ryan

+4

我可能在這裏丟失了一些重要的東西,但爲什麼不只是將臨時參數設置爲CarViewTemplate類型? –

+2

只要你開始做大量'typeof'檢查,你就知道你有一種代碼味道。 –

回答

2

這種類型的檢查已經存在的編譯器接口,無需盡力幫助它。

你的方法簽名只需改成這樣:

public void RenderCar(CarViewTemplate template) 
+2

我實際上假設這個答案是不可用的,但是這裏的主要問題是這個信息(它是無法使用的)在問題中沒有以任何方式或形式表達出來。我假設OP不能更改代碼是有原因的,但是由於沒有說明,我想引發這些信息出現。 –