我想检查一下方法的参数类型,以便给出 我在方法中使用希望类型确定的变量:
public static Object getFileContent(String filename, Type returntype)
{
if (returntype.GetType().Equals(string))
{
// do something
}
}
这不起作用。我该怎么办,检查返回类型是string
还是List<string>
?
答案 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)
在这种情况下,您只想检查returntype
与string
的类型是否相同。在比较Type
个实例时,最佳路线是简单地使用==
运算符
return returntype == typeof(string);
如果您必须处理COM接口,但您希望使用IsEquivalentTo
方法而不是==
return returntype.IsEquivalentTo(typeof(TheInterface));
这是必要的,因为COM中的嵌入式互操作类型将显示为不同的Type
实例。 IsEquivalentTo
方法将检查它们是否代表相同的基础类型。
答案 4 :(得分:-1)
我更喜欢is
运算符:
if (returntype is string)
{
// do something
}