gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:13:10 25 4
gpt4 key购买 nike

System.Type.GetType(string, bool) 的文档说,当 throwOnErrortrue 时抛出 TypeLoadException 并且:

{...} typeName represents an array type with an invalid size

我想知道,这是什么意思,怎么可能?与非托管代码或基于反射的数组相关吗?当我想通过名称获取 Type 时,是否需要担心这种情况?

有人知道这里发生了什么吗?

最佳答案

正如 Flydog57 提到的,

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

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

typeName represents an array type with an invalid size

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

  • 它完全产生 TypeLoadException 并且不符合任何其他描述的情况
  • C# 中唯一听起来像“具有大小的数组类型”的是 fixed size buffer ,但事实并非如此。

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

typeName represents an array type with an invalid dimension size

关于c# - 当 typeName 表示大小无效的数组类型时,Type.GetType() 抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com