程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#自動化的內存管理(Automatic memory management)

C#自動化的內存管理(Automatic memory management)

編輯:.NET實例教程
手動管理內存需要程序員自行分配和釋放內存塊。這要求程序員有清晰的頭腦和對整個運行過程有十分的
把握(好難!)。而c#把程序員從這難以承擔的任務中解放出來。在多數的情況下,這種自動內存管理提
高代碼的質量和程序員的生產力。並且,不會對程序的意圖和執行產生幅面的影響(?俺可不相信m$的鬼
話)。不過,估計比Java的回收站好一點吧。因為c#出道遲嘛(盡胡扯)。好了,來看看例子。*/

using System;
public class Stack
{
  private Node first = null;
  public bool Empty {
    get {
          return (first == null);
        }
  }
  public object Pop() {
    if (first == null)
      throw new Exception("Can''t Pop from an empty Stack.");
    else {
            object temp = first.Value;
            first = first.Next;
            return temp;
         }
  }
  public void Push(object o) {
    first = new Node(o, first);
  }
  class Node
  {
    public Node Next;
    public object Value;
    public Node(object value): this(value, null) {}
    public Node(object value, Node next) {
      Next = next;
      Value = value;
    }
  }
}

class Test
{
  static void Main() {
    Stack s = new Stack();
    for (int i = 0; i < 10; i++)
      s.Push(i);
    while (!s.Empty)
      Console.WriteLine(s.Pop());
  }
}
/*
stack類實現了一系列Node的實例。大家可以看看stack類的Push方法。Node的實例就是在Push方法中創建的。
就是“first = new Node(o, first);”。請記住這個“new”噢。它就是用來創建類實例的。相關的語法太
多,遛到後面用一節詳細講。這裡只是要了解自動內存管理(Automatic memory management)好處?!“new”
是負責初始化類實例。而在c/c++中釋放這些實例要用另一個關鍵字“delete”。但是在什麼時候用delete呢,
這通常是很費神的活,老手也會陰溝裡翻船。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved