下面的程序是构成一个链表 
 代码中的方法  
       public void Add(int t) {                
            MyItem n = new MyItem(t);
            n.Next = myItem;
            myItem = n;
         }代码中n是一个局部变量,在该方法调用结束后应该会消失.而myItem每次都是保存(单个)n的信息,而myItem原来的
值是不是就被替代了,也就是myItem每次只有一个值,那何以能组成一个链表,希望您能帮我解决一下,在此先谢过了!程序清单:
class Program {
        static void Main(string[] args) {
            MyList myList = new MyList();            for (int x = 0; x < 5; x++) {
                myList.Add(x);
            }                    }
    }
public class MyList {
               private class MyItem {
                      public MyItem(int t) {
                next = null;
                data = t;
            }             private MyItem next;
             public MyItem Next {
                get {
                    return next;
                }
                set {
                    next = value;
                }
            }             private int  data;             public int Data {
                get {
                    return data;
                }
                set {
                    data = value;
                }
            }
        }        private MyItem myItem;        public MyList() {
            myItem = null;
        }        
         public void Add(int t) {   //该方法不是很明白
            MyItem n = new MyItem(t);
            n.Next = myItem;
            myItem = n;
        }

         
    }
}

解决方案 »

  1.   

    因为你把n赋值给了myItem 啊,这时候myItem 就是指向n的了,
    因为myItem 还没有被释放,所以n也就不会被释放了
      

  2.   

            public void Add(int t) {  //该方法不是很明白 
                MyItem n = new MyItem(t); 
                n.Next = myItem; 
                myItem = n; 
            } 
                private MyItem myItem
    -------------------------------
    对照一下,应该能看明白了吧?