3

我想检查方法的参数具有哪种类型,以便为我在方法内部确定的变量提供所需的类型:

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

这行不通。我能做些什么来检查 returntype 是否为stringor List<string>

4

5 回答 5

5
returntype == typeof(string)

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

于 2013-03-19T15:49:26.837 回答
0

改用typeof运算符

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

要不就

 if (returntype == typeof(string))
 {
   // do something
 }
于 2013-03-19T15:49:14.847 回答
0
if(returnType == typeof(String) || return == typeof(List<String>))
    //logic
于 2013-03-19T15:49:27.553 回答
0

在这种情况下,您只想检查它returntype是否与string. 比较Type实例时,最好的方法是简单地使用==运算符

return returntype == typeof(string);

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

return returntype.IsEquivalentTo(typeof(TheInterface));

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

于 2013-03-19T15:53:22.350 回答
-1

我更喜欢is自己的运营商:

if (returntype is string)
{
    // do something
}
于 2013-03-19T15:50:33.180 回答