4

我想在运行时获取一种类型的“数组类型”。我不需要数组的实例,只需要Type。我目前使用以下方法。

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

在不创建数组实例的情况下有没有更好的解决方案?

注意:我不能使用Type.GetType(elementType.FullName + "[]"),因为我在运行时通过Reflection.Emit. 根据MSDN,它需要将动态程序集保存在我不想做的磁盘上。

4

1 回答 1

9

是的,您可以使用Type.MakeArrayType.

返回一个 Type 对象,表示当前类型的一维数组,下限为零。

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