解决方案 »

  1.   

    RFCommand.Enqueue(temp.ToString());
      

  2.   


    谢谢回复。还是不太理解。
    Queue.Enqueue不会复制一份数据到其队列中吗?如果仅仅是引用,那么temp 这个局部变量被系统回收后,Queue要去哪里取数据啊?
      

  3.   

    谢谢回复。还是不太理解。
    Queue.Enqueue不会复制一份数据到其队列中吗?如果仅仅是引用,那么temp 这个局部变量被系统回收后,Queue要去哪里取数据啊? 
      

  4.   


    谢谢回复。还是不太理解。
    Queue.Enqueue不会复制一份数据到其队列中吗?如果仅仅是引用,那么temp 这个局部变量被系统回收后,Queue要去哪里取数据啊?是的,队列里压入的都是对象的引用副本(和temp引用的是同一个对象)
    所以你替换之后,再去输出,它们都变了
    堆栈模型画一图就容易理解了
      

  5.   

    谢谢回复。还是不太理解。
    Queue.Enqueue不会复制一份数据到其队列中吗?如果仅仅是引用,那么temp 这个局部变量被系统回收后,Queue要去哪里取数据啊? 
    Queue引用了temp,所以temp不会被回收。
      

  6.   

    谢谢回复。还是不太理解。
    Queue.Enqueue不会复制一份数据到其队列中吗?如果仅仅是引用,那么temp 这个局部变量被系统回收后,Queue要去哪里取数据啊? 
    因为队列2个元素temp都是指向同一个地方。垃圾回收机制只会对没用的对象回收。