如何知道参数是一个数组?

Lis*_*isa 2 c# reflection winforms

我正在使用反射,当我得到参数的方法列表时,我需要检查所有这些,当我发现任何一个类型是数组我需要避免它时,我的意思是任何类型的数组,所以我使用了以下不起作用:

(!(parameter.GetType().Equals(Array)))
Run Code Online (Sandbox Code Playgroud)

错误是我使用类型作为变量!! 我能做些什么,有什么建议吗?

cod*_*ife 5

尝试

(!(parameter.GetType().IsArray))
Run Code Online (Sandbox Code Playgroud)

注 - 来自MSDN:

IsArray属性为Array类返回false.

要检查数组,请使用typeof(Array).IsAssignableFrom(type)等代码.

如果当前Type表示泛型类型或泛型类型或泛型方法定义中的类型参数,则此属性始终返回false.

这意味着如果你有简单的数组声明,如int [],string []等等,这IsArray很好,但如果没有,那么你将不得不使用IsAssignableFrom().