結構" />

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

首頁 > 學院 > 開發設計 > 正文

C#==>結構

2019-11-17 03:59:45
字體:
來源:轉載
供稿:網友
1,類保存在堆中,這種方式可以保證出具的數據在生存周期上的靈活性,性能雖然有一些損失,但由于托管堆的優化,損失是比較小的。

但有時我們僅需要一個比較小的數據結構,這時可以考慮使用結構



    class windowForm
    {
        public int Left;
        public int Right;    
    }

這樣一類,只有兩個存儲項,只需要處理這兩個變量。那么可以這樣定義為結構

    struct windowForm
    {
        public int Left;
        public int Right;

        windowForm(int left, int right)
        {
            this.Left = left;
            this.Right = right;
        }

        public void set()
        {
            Console.WriteLine("Left:" + Left + " Right:" + Right);
        }
    }

這樣具有構造函數的結構就可以免去定義在隊中的麻煩和性能問題。

結構也可以定義屬性等。

2,結構是值類型,存儲在堆棧中或內聯

如下: 兩次Set方法處理的結構一樣,并不能改變Left的值。

    class PRogram
    {
        static void Main(string[] args)
        {
            windowForm win = new windowForm();
            win.set();
            Change(win);
            win.set();
            Console.Read();
        }

        static void Change(windowForm win)
        {
            win.Left = 1;  
        }
    }

3,結構不能繼承

4,結構的構造函數是由編譯器提供的一個無參數構造函數,自己不能定義新的用來替換。

5,結構主要用于較小的數據結構,過大會有性能損失。

6,結構在作為參數傳遞時用要用ref 關鍵字,否則每次都復制新的內容引起不必要的性能消耗。

7,一個結構賦值給另一個結構的時候,由于結構是非引用型所以每次都會進行全部復制,而類只是復制引用
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆林| 德江县| 广灵县| 静安区| 利川市| 兰州市| 全椒县| 东源县| 平乡县| 永安市| 潜山县| 仙居县| 明水县| 闸北区| 栾城县| 保亭| 措美县| 嘉祥县| 永修县| 庆元县| 葫芦岛市| 闻喜县| 神农架林区| 河南省| 沧源| 拜泉县| 三亚市| 呼伦贝尔市| 策勒县| 江阴市| 漳平市| 万全县| 保定市| 通江县| 阳山县| 米泉市| 兰坪| 朔州市| 西乌珠穆沁旗| 中江县| 民乐县|