根据vs的文档:MakeArrayType()
表示下限为零的一维数组.MakeArrayType(1)
表示具有指定维数的数组.例如,如果UnderlyingSystemType是is int
的返回类型,MakeArrayType()
则
System.Int32[]
返回类型为MakeArrayType(1)
is System.Int32[*]
.
这些类型之间有什么区别.
Ste*_*iel 18
之间存在微妙的差异.MakeArrayType()
,并.MakeArrayType(1)
为您从被返回(类型看出Int32[]
对Int32[*]
).根据以下文件.MakeArrayType()
:
注意:公共语言运行库区分向量(即,始终从零开始的一维数组)和多维数组.始终只有一个维度的向量与恰好只有一个维度的多维数组不同.此方法重载只能用于创建矢量类型,而且它是创建矢量类型的唯一方法.使用MakeArrayType(Int32)方法重载来创建多维数组类型. 资源
所以当你调用.MakeArrayType()
它时会返回一个Vector(这是一个特殊的东西,总是有一个维度).调用.MakeArrayType(1)
会产生一个多维数组(而不是Vector) - 只是它只有一个维度.
Vector和Array之间的区别非常技术性,但基本上Vector通过CLR得到特殊处理,因此有额外的IL指令可以与它们一起使用,并且可以使它们更有效.有关Arrays和Vectors之间差异的更多信息,请参阅:http://markettorrent.com/community/7968#Vectors vs. Arrays
归档时间: |
|
查看次数: |
835 次 |
最近记录: |