我有一個從函數到函數傳遞的MemoryStream對象,並且每個函數都向它添加了一些東西(可能是字節可能更多)。
閱讀中有匹配的功能。避免將偏移量傳遞給C#MemoryStream寫入
我可以避免自己更新偏移量並讓「流」處理它嗎?
(如stream.Write(byte[]);
類似stream.WriteByte(byte);
)
我有點從所有文檔困惑在該地區
我有一個從函數到函數傳遞的MemoryStream對象,並且每個函數都向它添加了一些東西(可能是字節可能更多)。
閱讀中有匹配的功能。避免將偏移量傳遞給C#MemoryStream寫入
我可以避免自己更新偏移量並讓「流」處理它嗎?
(如stream.Write(byte[]);
類似stream.WriteByte(byte);
)
我有點從所有文檔困惑在該地區
是的,你可以創建一個extension method始終將偏移設置爲0(即從寫緩衝區中的零索引)。
public static class Extensions
{
public static void Write(this MemoryStream stream, byte[] buffer)
{
stream.Write(buffer, 0, buffer.Length);
}
}
這些偏移量進入你的字節數組,而不是進入流。所以我不知道你爲什麼要更新偏移量。如果你想寫一個完整的數組,只需將偏移量設置爲0,並將長度設置爲數組的長度。 – CodesInChaos 2013-04-09 09:49:11
@CodesInChaos +1,也許你可以寫這個作爲答案,我強烈懷疑它實際上是OP的問題的來源(緩衝區和流的偏移量之間的混淆) – ken2k 2013-04-09 09:51:40
哦......的確......我的確認爲偏移量是流本身...謝謝你們... – Boaz 2013-04-09 09:58:39