首页 > 在c#中,Type type的值可以是数组么?

在c#中,Type type的值可以是数组么?

长期以来我一直认为是不行的,直到今天我看到了某外国c#框架中的一段代码:

void someFunction(Type type)
{
    ………………(肯定没有修改到参数 type 值的句子)
    
   if (type.IsArray) 
   { 
      inwardType = type.GetElementType();
   }

    ………………(肯定没有修改到参数 type 值的句子)
}

他在这里判断Type type就代表Type type的值可以是数组对么?
于是我自己瞎试了半天,也没试成功,比如

Type[] ts = new Type[] { typeof(int), typeof(string) };
object o = ts;
Type type = o as Type

当然我自己也知道这样写肯定是不对的,事实也证明虽然Type type = o as Type可以成功把o赋值给type,但是o为null了……

所以我很好奇:既然判断了if (type.IsArray),就说明肯定某种情况下参数Type type会接受一个数组作为它的值并且不报错吧?那么究竟是何种情况才会导致它成立呢?求大家指点!


我弄明白了,之所以判断

if (type.IsArray)

是因为实参会传入类似

typeof(int[])

这样的值,打扰大家了……

【热门文章】
【热门文章】