4

実行時に型の「配列型」を取得したい。配列のインスタンスは必要ありません。Typeだけです。私は現在、以下の方法を使用しています。

    private Type GetArrayType(Type elementType)
    {
        return Array.CreateInstance(elementType, 0).GetType();
    }

配列のインスタンスを作成せずに、より良い解決策はありますか?

注:Type.GetType(elementType.FullName + "[]")実行時に要素Typeを作成するため、使用できませんReflection.EmitMSDNによると、動的アセンブリをディスクに保存する必要がありますが、これは実行したくありません。

4

1 に答える 1

9

はい、使用できますType.MakeArrayType

下限がゼロの現在の型の1次元配列を表すTypeオブジェクトを返します。

private Type GetArrayType(Type elementType)
{
    return elementType.MakeArrayType();
}
于 2013-02-16T10:45:18.173 に答える