2013-05-01 119 views
0

我使用泛型如下:修改默認類型參數

public override ValidationResult SelfValidate() 
{ 
    return ValidationHelper.Validate<VendorValidator, Vendor>(this); 
} 

不過,我似乎無法得到的語法完全正確,讓我在不同的驗證傳遞給覆蓋VendorValidator類型參數。我希望能夠使用Type數據類型。

+1

我不確定你想要做什麼?您是否想基於僅在運行時已知的類型調用Validate方法? – Sven 2013-05-01 22:03:13

+0

'this'的類型是什麼?我猜'供應商'......如果是這樣的話,那麼你的第二個通用參數可以被暗示,所以你不必明確地定義它。不是你的問題的答案,但可能有助於知道。 – 2013-05-01 22:32:14

+0

@Sven - sorta。有一個默認類型(在這種情況下是'VendorValidator'),我想在某些情況下覆蓋它。 – 2013-05-08 12:22:11

回答

1

您應該添加一個泛型類型參數:

public override ValidationResult SelfValidate<T>() 
{ 
    return ValidationHelper.Validate<T, Vendor>(this); 
} 

你會使用這樣的:

this.selfValidate<VendorValidator>(); 

注:我看到你覆蓋的方法。如果你不能改變基本方法,這將不起作用。

+0

我不得不做一些重構,但最終成爲解決方案。看來我以前走的路不正確。謝謝! – 2013-05-08 12:43:44