.net MemoryStream.TryGetBuffer何时返回有用的ArraySegment?
是.NET 4.6中的一个新API,可用于访问存储在MemoryStream中的有效字节,而无需复制它们。这太令人兴奋了!它返回一个bool,“如果转换成功,则为true;否则为false”,并填充out参数 何时返回true,表示.net MemoryStream.TryGetBuffer何时返回有用的ArraySegment?,.net,memorystream,.net,Memorystream,是.NET 4.6中的一个新API,可用于访问存储在MemoryStream中的有效字节,而无需复制它们。这太令人兴奋了!它返回一个bool,“如果转换成功,则为true;否则为false”,并填充out参数 何时返回true,表示out ArraySegment缓冲区现在包含有效信息?这在今天还没有记录 我知道如果它返回false,我可以使用它来获取字节的副本。而且,我们已经有了,但是有时候内存流是在缓冲区中有一个偏移量的情况下创建的,而且这个信息是,更不用说try。。。健壮性所需的catch
out ArraySegment缓冲区现在包含有效信息?这在今天还没有记录
我知道如果它返回false,我可以使用它来获取字节的副本。而且,我们已经有了,但是有时候内存流是在缓冲区中有一个偏移量的情况下创建的,而且这个信息是,更不用说try。。。健壮性所需的catch
。对于TryGetBuffer
要执行成功转换并用有用信息填充out参数,缓冲区必须可见。如果使用以下任何构造函数,则缓冲区可见:
MemoryStream()
内存流(内部容量)
MemoryStream(byte[]缓冲区、int索引、int计数、bool可写、bool publicyVisible)
带有publicyVisible:true
有关更多详细信息,请查看。GetBuffer返回内存中的所有字节,与使用无关
例:
容量=100000,长度=200
GetBuffer(和TryGetBuffer!?)返回字节(容量)
ToArray返回字节(长度)