检查参数类型
本文关键字:类型 参数 检查 | 更新日期: 2023-09-27 18:04:55
我想检查一下,方法的参数具有哪种类型,以便给出我在方法内部确定的变量,其类型为:
public static Object getFileContent(String filename, Type returntype)
{
if (returntype.GetType().Equals(string))
{
// do something
}
}
这行不通。如何检查returntype是string
还是List<string>
?
returntype == typeof(string)
不需要调用GetType
,因为已经有类型。(GetType
无论如何不会返回一个有用的答案,它将返回typeof(Type))。
使用typeof
操作符代替
if (returntype.Equals(typeof(string)))
{
// do something
}
还是
if (returntype == typeof(string))
{
// do something
}
if(returnType == typeof(String) || return == typeof(List<String>))
//logic
在这种情况下,您只需检查returntype
是否与string
相同类型。比较Type
实例时,最好的方法是简单地使用==
操作符
return returntype == typeof(string);
如果你必须处理COM接口,你会想使用IsEquivalentTo
方法而不是==
return returntype.IsEquivalentTo(typeof(TheInterface));
这是必要的,因为COM中的嵌入式互操作类型将显示为不同的Type
实例。IsEquivalentTo
方法将检查它们是否表示相同的底层类型。
我自己更喜欢is
操作符:
if (returntype is string)
{
// do something
}