一下功能想实现单队列类的一个单例模式,但是发现数据入队的时候,
成员是byte数组,调试没有问题,但是出队的时候,虽然数组长度对上了,
但是数组的数据内容都是0;
private static readonly QueueSignalTemplateMng instance = new QueueSignalTemplateMng();
private QueueGroupMng<byte[]> queueMng = new QueueGroupMng<byte[]>();
// 显示的static 构造函数
// 没必要标记类型 - 在field初始化以前
static QueueSignalTemplateMng()
{
}
private QueueSignalTemplateMng()
{
}
public static QueueSignalTemplateMng GetInstance()
{
return instance;
}
/// <summary>
/// 分析接受过来的信息,处理粘连的报文
/// </summary>
public void disposeRecieveMess(byte[] in_arrByteMess, int in_iMessLength)
{
byte[] arrayTemp;
int indexPos = 0, dateLength;
while(true)
{
if (HEAD1 == in_arrByteMess[indexPos] && HEAD2 == in_arrByteMess[indexPos + 1])
{
dateLength = in_arrByteMess[indexPos + 2];
arrayTemp = new byte[dateLength];
Array.ConstrainedCopy(in_arrByteMess, indexPos, arrayTemp, 0, dateLength);
queueMng.QueueInsert(arrayTemp);
Array.Clear(arrayTemp, 0, arrayTemp.Length);
indexPos += dateLength;
}
else
{
break;
}
}
}
public byte[] getDateArray()
{
byte[] array = queueMng.QueueOuputDate();
return array;
}
public int DateArrayCount()
{
return queueMng.GetQueueCount();
}
class QueueGroupMng<T>
{
Queue<T> DateQueue = new Queue<T>();
/// <summary>
/// 数据入队
/// </summary>
/// <param name="limitNum"></param>
/// <param name="Date"></param>
public void QueueInsert(T list)
{
DateQueue.Enqueue(list);
}
/// <summary>
/// 数据出队
/// </summary>
/// <returns></returns>
public T QueueOuputDate()
{
T dateReturn = DateQueue.Dequeue();
return dateReturn;
}
/// <summary>
/// 获得当前队列中数据量
/// </summary>
/// <returns></returns>
public int GetQueueCount()
{
int count = DateQueue.Count;
return count;
}
public void ClearQueueCount()
{
DateQueue.Clear();
}
}
请问为何?