繁体   English   中英

字节数组排队问题

[英]Queue-ing Byte arrays trouble

最简单的例子。 我正在尝试像这样创建字节数组队列:

        Queue<Byte[]> q = new Queue<Byte[]>();
        Byte[] block = new Byte[1];
        block[0] = 1;
        q.Enqueue(block);
        block[0] = 2;
        q.Enqueue(block);
        block[0] = 3;
        q.Enqueue(block);
        byte[] block1 = q.Dequeue();
        Console.WriteLine(block1[0]);
        block1 = q.Dequeue();
        Console.WriteLine(block1[0]);
        block1 = q.Dequeue();
        Console.WriteLine(block1[0]);

但是实际上我所有三个块都带有“ 3”,但是期望的是“ 1”,“ 2”,“ 3”。 有什么想法我做错了吗?

您每次都需要创建一个新数组,否则只需更改同一数组并将其多个引用添加到Queue

Queue<Byte[]> q = new Queue<Byte[]>();
Byte[] block = new Byte[1];
block[0] = 1;
q.Enqueue(block);

// Create a new array
block = new Byte[1];
block[0] = 2;
q.Enqueue(block);

// Create a new array
block = new Byte[1];
block[0] = 3;
q.Enqueue(block);
byte[] block1 = q.Dequeue();
Console.WriteLine(block1[0]);
block1 = q.Dequeue();
Console.WriteLine(block1[0]);
block1 = q.Dequeue();
Console.WriteLine(block1[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM