检查参数类型

时间:2013-03-19 15:48:15

标签: c#

我想检查一下方法的参数类型,以便给出 我在方法中使用希望类型确定的变量:

public static Object getFileContent(String filename, Type returntype)
{
     if (returntype.GetType().Equals(string))
     {
       // do something
     }
}

这不起作用。我该怎么办,检查返回类型是string还是List<string>

5 个答案:

答案 0 :(得分:5)

returntype == typeof(string)

无需致电GetType,因为您已经拥有类型。 (GetType无论如何都不会返回有用的答案,它会返回typeof(Type))。

答案 1 :(得分:0)

使用typeof运算符

 if (returntype.Equals(typeof(string)))
 {
   // do something
 }

或只是

 if (returntype == typeof(string))
 {
   // do something
 }

答案 2 :(得分:0)

if(returnType == typeof(String) || return == typeof(List<String>))
    //logic

答案 3 :(得分:0)

在这种情况下,您只想检查returntypestring的类型是否相同。在比较Type个实例时,最佳路线是简单地使用==运算符

return returntype == typeof(string);

如果您必须处理COM接口,但您希望使用IsEquivalentTo方法而不是==

return returntype.IsEquivalentTo(typeof(TheInterface));

这是必要的,因为COM中的嵌入式互操作类型将显示为不同的Type实例。 IsEquivalentTo方法将检查它们是否代表相同的基础类型。

答案 4 :(得分:-1)

我更喜欢is运算符:

if (returntype is string)
{
    // do something
}