Lis*_*isa 2 c# reflection winforms
我正在使用反射,当我得到参数的方法列表时,我需要检查所有这些,当我发现任何一个类型是数组我需要避免它时,我的意思是任何类型的数组,所以我使用了以下不起作用:
(!(parameter.GetType().Equals(Array)))
Run Code Online (Sandbox Code Playgroud)
错误是我使用类型作为变量!! 我能做些什么,有什么建议吗?
尝试
(!(parameter.GetType().IsArray))
Run Code Online (Sandbox Code Playgroud)
注 - 来自MSDN:
IsArray属性为Array类返回false.
要检查数组,请使用typeof(Array).IsAssignableFrom(type)等代码.
如果当前Type表示泛型类型或泛型类型或泛型方法定义中的类型参数,则此属性始终返回false.
这意味着如果你有简单的数组声明,如int [],string []等等,这IsArray很好,但如果没有,那么你将不得不使用IsAssignableFrom().