指定された数のインデックスを持つ基本型の配列の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()を呼び出すために必要なタイプのインスタンスを作成する必要があるのは理想的ではないようです。インスタンスを作成せずにタイプを生成する方法が必要です。それともありますか?