如何在给定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 + "[]");
}