为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕田峪4524236 2021-11-14 17:03:48
System.Type.GetType(string, bool)的文档说,TypeLoadException当throwOnError是true和时抛出:{...} typeName 表示大小无效的数组类型我想知道,这是什么意思,怎么可能?与非托管代码或基于反射的数组工作有关吗?当我想知道Type它的名字时,我是否必须担心这种情况?有谁知道这里发生了什么?
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

正如 Flydog57 提到的,

Type.GetType("System.Int32[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]")

会产生一个异常,因为数组的最大维数是 32。它并不真正对应于文档说

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

但我认为有足够的证据表明这正是我们正在寻找的情况:

  • 它准确地产生TypeLoadException并且不适合任何其他描述的情况

  • C# 中唯一听起来像“具有大小的数组类型”的是固定大小的缓冲区,但事实并非如此。

所以,我很确定文档中有错误,正确的变体应该听起来像

typeName 表示具有无效维度大小的数组类型


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信