当 typeName 表示大小无效的数组类型时,Type.GetType() 抛出

System.Type.GetType(string, bool)的文档说,TypeLoadExceptionthrowOnErrortrue和时抛出:

{...} typeName 表示大小无效的数组类型

我想知道,这是什么意思,怎么可能?与非托管代码或基于反射的数组工作有关吗?当我想知道Type它的名字时,我是否必须担心这种情况?

有谁知道这里发生了什么?


慕田峪4524236
浏览 224回答 1
1回答

SMILET

正如 Flydog57 提到的,Type.GetType("System.Int32[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]")会产生一个异常,因为数组的最大维数是 32。它并不真正对应于文档说typeName 表示大小无效的数组类型但我认为有足够的证据表明这正是我们正在寻找的情况:它准确地产生TypeLoadException并且不适合任何其他描述的情况C# 中唯一听起来像“具有大小的数组类型”的是固定大小的缓冲区,但事实并非如此。所以,我很确定文档中有错误,正确的变体应该听起来像typeName 表示具有无效维度大小的数组类型
打开App,查看更多内容
随时随地看视频慕课网APP