我需要为具有指定数量索引的基本类型的数组创建一个Type实例。基本上我需要像下面这样的方法,我可以调用......
public Type GetArrayOfType(Type baseType, int numOfIndexes)
{
return /* magic does here */
}
因此调用该函数将给出以下结果......
GetTypeArray(typeof(bool), 1) == typeof(bool[])
GetTypeArray(typeof(bool), 2) == typeof(bool[,])
GetTypeArray(typeof(bool), 3) == typeof(bool[,,])
我能想出的唯一解决方案是以下...
public Type GetArrayOfType(Type baseType, int numOfIndexes)
{
List<int> indexes = new List<int>();
for(int i=0; i<numOfIndexes; i++)
indexes.Add(1);
return Array.CreateInstance(baseType, indexes.ToArray()).GetType();
}
这确实有效,但必须创建所需类型的实例才能调用GetType()似乎并不理想。必须有一种方法可以在不创建实例的情况下生成类型。或者有吗?