国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#自動化內(nèi)存管理

2023-05-03 13:32:45
字體:
供稿:網(wǎng)友

自動化的內(nèi)存管理(Automatic memory management)

手動管理內(nèi)存需要程序員自行分配和釋放內(nèi)存塊。這要求程序員有清晰的頭腦和對整個運行過程有十分的把握。而c#把程序員從這難以承擔(dān)的任務(wù)中解放出來。在多數(shù)的情況下,這種自動內(nèi)存管理提高代碼的質(zhì)量和程序員的生產(chǎn)力。并且,不會對程序的意圖和執(zhí)行產(chǎn)生負(fù)面的影響。

下面是一個例子

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("空棧,不能執(zhí)行彈棧操作。");
      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類實現(xiàn)了一系列Node的實例。大家可以看看stack類的Push方法。Node的實例就是在Push方法中創(chuàng)建的。

 就是“first = new Node(o, first);”。new就是用來創(chuàng)建類實例的。是負(fù)責(zé)初始化類實例。而在c/c++中釋放這些實例要用另一個關(guān)鍵字“delete”。但是在什么時候用delete呢,這通常是很費神的活,老手也會陰溝里翻船。但在c#中沒有用“delete”。

 當(dāng)Node的實例不需要時,垃圾收集器(garbage collector)自動銷毀它,不用俺操心嘍。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海安县| 措勤县| 汽车| 宁海县| 仙居县| 神池县| 乌苏市| 石狮市| 肥乡县| 略阳县| 永宁县| 江西省| 敦煌市| 巢湖市| 庄浪县| 太和县| 九台市| 宁德市| 郑州市| 信阳市| 府谷县| 广丰县| 阿图什市| 宣化县| 洛南县| 安阳县| 庄浪县| 萝北县| 新乐市| 澎湖县| 广饶县| 陆丰市| 泰兴市| 小金县| 和田县| 庆城县| 大田县| 亚东县| 顺昌县| 若尔盖县| 绥棱县|