Queue的奇特现象

yinshi2012 2013-02-22 06:42:15
我用Queue<T>来存取日志信息,T是个struct,里面记录时间和string。
struct 里面重载构造函数,初始化时间为当前日期和赋值非空字符串。
问题===========================================================
在使用的过程中发现,有时从队列中出列的struct会有日期为0001-1-1和空字符串的情况。
而我入队的时调用的构造函数都是自己写的构造函数,就算有空串的情况,日期也不会是那样的。
===============================================================
XP .Net3.5

有人遇到相似的情况么?
...全文
186 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yinshi2012 2013-02-25
结贴了。这个问题太怪了。 尝试==1====================== 把struct声明变为class声明其他不变。 T l_Log=Queue<T>.Dequeue(); VS提示l_Log为null。 怀疑new class(T)失败,插入了null。 尝试==2====================== 在所有Queue<T>.Enqueue前判断变量是否为null,非null才入队。经测试问题依旧。 ============================= 没别的办法分析了,现在的做法是出队后判断是不是无效的数据,无效的就不处理了。
  • 打赏
  • 举报
回复
threenewbee 2013-02-23
结构体字段需要先初始化。
  • 打赏
  • 举报
回复
传递正能量 2013-02-22
有时从队列中出列的struct会有日期为0001-1-1和空字符串的情况 如果你的日期没有正确初始化,或者构造没有被调用,是可能出现你说的情况的 先确认这两点 你可以贴代码来看看
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2013-02-22 06:42
社区公告

让您成为最强悍的C#开发者