• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

        C#重點(diǎn)知識(shí)詳細(xì)說(shuō)明(二)(轉(zhuǎn))

        C#重點(diǎn)知識(shí)詳細(xì)說(shuō)明(二)(轉(zhuǎn))

        更新時(shí)間:2022-04-29 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

        第二章 內(nèi)存管理

        c#內(nèi)存管理提供了與java一樣的自動(dòng)內(nèi)存管理功能,讓程序員從繁重的內(nèi)存管理中擺脫出來(lái),內(nèi)存管理提高了代碼的質(zhì)量和提高了開(kāi)發(fā)效率。

        c#限制了著指針的使用,免除了程序員對(duì)內(nèi)存泄漏的煩惱,但是不是意味著向java程序員一樣c#程序員在也不能使用指針代來(lái)的好處。微軟在設(shè)計(jì)C#語(yǔ)言時(shí)考慮到這個(gè)問(wèn)題,在一方面拋棄指針的同時(shí),另一方面采用折衷的辦法,通過(guò)一個(gè)標(biāo)志來(lái)時(shí)程序引入指針。

        首先我們來(lái)了解自動(dòng)內(nèi)存管理

        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;
        }
        }
        }

        程序創(chuàng)建了一個(gè)stack類來(lái)實(shí)現(xiàn)一個(gè)鏈,使用一個(gè)push方法創(chuàng)建Node節(jié)點(diǎn)實(shí)例和一個(gè)當(dāng)不再需要Node節(jié)點(diǎn)時(shí)的收集器。一個(gè)節(jié)點(diǎn)實(shí)例不能被任何代碼訪問(wèn)時(shí),就被收集。例如當(dāng)一個(gè)點(diǎn)元素被移出棧,相關(guān)的Node就被收集。

        The example

        class Test
        {
        static void Main() {
        Stack s = new Stack();

        for (int i = 0; i < 10; i++)
        s.Push(i);

        s = null;
        }
        }





        關(guān)于指針的引用,c#中使用unsafe標(biāo)志來(lái)代表隊(duì)指針的引用。以下程序演示了指針的用法,不過(guò)由于使用指針,內(nèi)存管理就不得不手工完成。

        using System;

        class Test
        {
        unsafe static void Locations(byte[] ar) {
        fixed (byte *p = ar) {
        byte *p_elem = p;
        for (int i = 0; i < ar.Length; i++) {
        byte value = *p_elem;
        string addr = int.Format((int) p_elem, "X");
        Console.WriteLine("arr[{0}] at 0x{1} is {2}", i, addr, value);
        p_elem++;
        }
        }
        }

        static void Main() {
        byte[] arr = new byte[] {1, 2, 3, 4, 5};
        WriteLocations(ar);
        } <>

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国产精品jizz在线观看免费| 成年女人午夜毛片免费看| 亚洲精品黄色视频在线观看免费资源| 国产精品亚洲专区在线观看| 久草视频免费在线观看| 亚洲a级成人片在线观看| 成人免费视频77777| 亚洲狠狠成人综合网| 精品久久久久国产免费| 亚洲乱理伦片在线观看中字| 在线看片人成视频免费无遮挡| 亚洲最大中文字幕无码网站| 成人免费看片又大又黄| 国产成人不卡亚洲精品91| 亚洲精品国产精品乱码不卞| 国产成人精品免费大全| 久久亚洲国产中v天仙www | 亚洲欧美国产欧美色欲| 香蕉视频在线观看免费国产婷婷| 亚洲色无码国产精品网站可下载| 日本成人在线免费观看| 亚洲阿v天堂在线2017免费| 亚洲精品无码专区在线在线播放| 最近免费中文字幕MV在线视频3| 亚洲成AV人片在WWW色猫咪| 四虎1515hh永久久免费| 亚洲国产精品无码久久久秋霞1| 亚洲AV成人精品日韩一区18p| 国产精品免费αv视频| 久久精品国产亚洲AV香蕉| 欧洲精品成人免费视频在线观看 | 亚洲&#228;v永久无码精品天堂久久 | 亚洲美女又黄又爽在线观看| 99视频免费观看| 亚洲精品无码永久在线观看男男 | 国产国产人免费视频成69堂| 亚洲精品天堂成人片AV在线播放| 亚洲人成色7777在线观看不卡| 色欲色香天天天综合网站免费| 亚洲熟女www一区二区三区| 国产偷国产偷亚洲清高动态图 |