Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查类型参数?_C# - Fatal编程技术网

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不能仅仅更改代码是有原因的,但由于这没有说明,我想激发这些信息的出现。