给定简单类型T,获取数组类型T[]



如何在给定T的情况下得到Array of type T的类型?

下面的linqpad友好代码片段:

void Main()
{
    Type t = typeof(string);
    Type tArray = GetArrayType(t);
    tArray.Dump(); // System.String[]
}
Type GetArrayType(Type t)
{
    ////this is cheating !!
    //return typeof(string[]); 
}

这样就可以了:

type.MakeArrayType()

,

int a = 123;
Type aType = a.GetType();
Type aArrayType = aType.MakeArrayType();
// aArrayType.FullName = "System.Int32[]"

UPDATE

知道有更好的方法:)

Type GetArrayType(Type t){
    return t.MakeArrayType();
}

原始答:

这个工作,但我希望一些不那么hacky

Type GetArrayType(Type t){
    return Type.GetType(t + "[]");
}

相关内容

  • 没有找到相关文章

最新更新