C# 为什么我会得到一个零数组

C# 为什么我会得到一个零数组,c#,c#-2.0,bytearray,memorystream,C#,C# 2.0,Bytearray,Memorystream,myByte-所有字节均为零 a=“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 当我怀疑你想打电话给阅读时,你打电话给写作的原因可能是什么。换句话说,您正在从一个新创建的(因此充满了零)数组写入MemoryStream,其

myByte-所有字节均为零

a=“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


当我怀疑你想打电话给阅读时,你打电话给写作的原因可能是什么。换句话说,您正在从一个新创建的(因此充满了零)数组写入
MemoryStream
,其中包含序列化数据。使用
Read
而不是
Write
将从流读取到数组中

调用
ToArray
会更简单,不过:

byte[] myByte = memoryStream.ToArray();

您正在将字节数组写入
内存流
,而不是相反。将
Write
替换为read将解决您眼前的问题

但是
MemoryStream
有一个
ToArray()
方法,它已经实现了您想要的功能。无需以如此复杂的方式进行操作。

原因:

  • 您没有刷新
    二进制格式化程序
    ,因此
    内存流
    甚至没有被写入
  • 你到底想干什么
    如果(1)是正确的,在
    memoryStream
    binaryFormatter

    这两个方面都使用。据我所知,binaryFormatter没有Flush方法。我相信你是对的,但我读心术不如你好,所以我可以看出他指的是读而不是写。所以我猜为了编写memoryStream,需要一些额外的步骤。
    byte[] myByte = memoryStream.ToArray();