今天我注意到
我知道需要超过1GB的流才能使长度超过可能的容量,但这对我来说似乎非常奇怪。因为
MemoryStream
类有点奇怪。.Length
属性是long
类型的,但是.Capacity
属性应该始终大于或等于.Length
,但它只是一个int
。我知道需要超过1GB的流才能使长度超过可能的容量,但这对我来说似乎非常奇怪。因为
Length
是从Stream
继承而来,所以无法更改,但为什么不将Capacity
也变成long
呢?如果您确实有一个长度超过int.MaxValue
的MemoryStream
,那么容量会发生什么情况?
gcAllowVeryLargeObjects
来创建大于2GB的数组。 - Yuval Itzchakov