C# 如何检查类型参数?
我有课C# 如何检查类型参数?,c#,C#,我有课 class ManagerCar : IBlalba { public void Render(IViewTemplate template) { } } 我知道参数模板是什么CarViewTemplate如果IViewTemplate!=CarViewTemplate 我可以检查是否(模板是typeof(CarViewTemplate)) 但是我有很多经理 我希望在编译时使用帮助属性检查此类型,如[IsType(typeof(CarViewTemplate))] 可
class ManagerCar : IBlalba
{
public void Render(IViewTemplate template)
{
}
}
我知道参数模板是什么CarViewTemplate
如果IViewTemplate!=CarViewTemplate
我可以检查是否(模板是typeof(CarViewTemplate))
但是我有很多经理
我希望在编译时使用帮助属性检查此类型,如[IsType(typeof(CarViewTemplate))]
可能吗
更新
我有与Render(IViewTemplate模板)的接口编译器中已经存在这种类型的检查,无需尝试帮助
只需将方法签名更改为:
public void RenderCar(CarViewTemplate template)
如果无法使用IViewTemplate
,请不要接受。您正在寻找的编译时检查是CarViewTemplate
。我可能在这里遗漏了一些重要的内容,但是为什么不将tempate参数设置为CarViewTemplate类型呢?一旦您开始执行大量typeof
检查,您就会知道您有一种代码味道。如果您有Render的接口(IViewTemplate模板)
,那么为什么manager:SuchAnInterface
?@Dimitar Dimitrov,你的声音听起来不错我实际上假设这个答案不可用,但这里的主要问题是这些信息(它不可用)没有以任何方式或形式在问题中说明。我假设OP不能仅仅更改代码是有原因的,但由于这没有说明,我想激发这些信息的出现。