Bob*_*son 6 .net c# memorystream
今天我发现MemoryStream课堂上有些奇怪.该.Length物业是一个long,但 .Capacity财产,应该可能永远>= .Length只是一个int.
我知道,如果长度超过可能的容量需要超过1 GB的流,但这对我来说似乎很奇怪. Length不能改变,因为它是继承的Stream,但为什么不做Capacity一个long呢?碰巧的能力,如果你也有MemoryStream超过int.MaxValue长?
不,MemoryStream.Capacity不能超过int.MaxValue因为内存流是由一个byte[]和数组最大长度int.MaxValue支持.
然而,Stream.Length就是long,这是有道理的,因为流可以是任何东西,例如FileStream.Length可以大于int.MaxValue无疑.
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |