System.Type.GetType(string, bool) 的文档说,当 throwOnError
为 true
时抛出 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/