[英]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.