4
我需要爲具有指定數量索引的基類型數組創建類型實例。從本質上講,我需要這樣我可以撥打下列方法...如何獲取描述基類型數組的類型?
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(創建所需類型的實例)不似乎很理想。必須有辦法生成類型而不創建實例。或者在那裏?
爲什麼'MakeArrayType(1)'是不一樣'MakeArrayType()',請參閱文檔http://msdn.microsoft.com/en-us/library/w0ykk2sw.aspx –
非常感謝。有時你只知道必須有更好的方法。 –
@TimS。非常感謝你!我編輯了答案以包含來自文檔的描述。 – dasblinkenlight