修改默认类型参数
问题描述:
我使用泛型如下:修改默认类型参数
public override ValidationResult SelfValidate()
{
return ValidationHelper.Validate<VendorValidator, Vendor>(this);
}
不过,我似乎无法得到的语法完全正确,让我在不同的验证传递给覆盖VendorValidator类型参数。我希望能够使用Type数据类型。
答
您应该添加一个泛型类型参数:
public override ValidationResult SelfValidate<T>()
{
return ValidationHelper.Validate<T, Vendor>(this);
}
你会使用这样的:
this.selfValidate<VendorValidator>();
注:我看到你覆盖的方法。如果你不能改变基本方法,这将不起作用。
+0
我不得不做一些重构,但最终成为解决方案。看来我以前走的路不正确。谢谢! – 2013-05-08 12:43:44
我不确定你想要做什么?您是否想基于仅在运行时已知的类型调用Validate方法? – Sven 2013-05-01 22:03:13
'this'的类型是什么?我猜'供应商'......如果是这样的话,那么你的第二个通用参数可以被暗示,所以你不必明确地定义它。不是你的问题的答案,但可能有助于知道。 – 2013-05-01 22:32:14
@Sven - sorta。有一个默认类型(在这种情况下是'VendorValidator'),我想在某些情况下覆盖它。 – 2013-05-08 12:22:11