最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入探討C#中的結(jié)構(gòu)struct

 更新時(shí)間:2013年09月30日 14:59:43   作者:  
這篇文章詳細(xì)介紹了C#中的結(jié)構(gòu)struct,有需要的朋友可以參考一下

一、結(jié)構(gòu)和類的區(qū)別

1、結(jié)構(gòu)的級(jí)別和類一致,寫在命名空間下面,可以定義字段、屬性、方法、構(gòu)造方法也可以通過關(guān)鍵字new創(chuàng)建對(duì)象。

2、結(jié)構(gòu)中的字段不能賦初始值。

3、無參數(shù)的構(gòu)造函數(shù)無論如何C#編譯器都會(huì)自動(dòng)生成,所以不能為結(jié)構(gòu)定義一個(gè)無參構(gòu)造函數(shù)。

4、在構(gòu)造函數(shù)中,必須給結(jié)構(gòu)體的所有字段賦值。

5、在構(gòu)造函數(shù)中,為屬性賦值,不認(rèn)為是對(duì)字段賦值,因?yàn)閷傩圆灰欢ㄊ侨ゲ僮髯侄巍?/P>

6、結(jié)構(gòu)是值類型,在傳遞結(jié)構(gòu)變量的時(shí)候,會(huì)將結(jié)構(gòu)對(duì)象里的每一個(gè)字段復(fù)制一份拷貝到新的結(jié)構(gòu)變量的字段中。

7、不能定義自動(dòng)屬性,因?yàn)樽侄螌傩詴?huì)生成一個(gè)字段,而這個(gè)字段必須要求在構(gòu)造函數(shù)中,但我們不知道這個(gè)字段叫什么名字。

8、聲明結(jié)構(gòu)體對(duì)象,可以不使用new關(guān)鍵字,但是這個(gè)時(shí)候,結(jié)構(gòu)體對(duì)象的字段沒有初始值,因?yàn)闆]有調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)中必須為字段賦值,所以,通過new關(guān)鍵字創(chuàng)建結(jié)構(gòu)體對(duì)象,這個(gè)對(duì)象的字段就有默認(rèn)值。

9、棧的訪問速度快,但空間小,堆的訪問速度慢,但空間大,當(dāng)我們要表示一個(gè)輕量級(jí)的對(duì)象的時(shí)候,就定義為結(jié)構(gòu),以提高速度,根據(jù)傳至的影響來選擇,希望傳引用,則定義為類,傳拷貝,則定義為結(jié)構(gòu)。

二、Demo

復(fù)制代碼 代碼如下:

struct Point
    {
        public Program p;
        private int x;

        public int X
        {
            get { return x; }
            set { x = value; }
        }
        private int y;

        public int Y
        {
            get { return y; }
            set { y = value; }
        }
        public void Show()
        {
            Console.Write("X={0},Y={1}", this.X, this.Y);
        }
        public Point(int x,int y)
        {
            this.x = x;
            this.y = y;
            this.p = null;
        }
        public Point(int x)
        {
            this.x = x;
            this.y = 11;
            this.p = null;
        }
        public Point(int x, int y, Program p)
        {
            this.x = x;
            this.y = y;
            this.p = p;
        }
    }
    class Program
    {
        public string Name { get; set; }
        static void Main(string[] args)
        {
            //Point p = new Point();
            //p.X = 120;
            //p.Y = 100;
            //Point p1 = p;
            //p1.X = 190;
            //Console.WriteLine(p.X);

            //Point p;
            //p.X = 12;//不賦值就會(huì)報(bào)錯(cuò)
            //Console.WriteLine(p.X);
            //Point p1 = new Point();
            //Console.WriteLine(p1.X);//此處不賦值不會(huì)報(bào)錯(cuò),原因見區(qū)別8

            Program p = new Program() { Name="小花"};
            Point point1 = new Point(10, 10, p);
            Point point2 = point1;
            point2.p.Name = "小明";
            Console.WriteLine(point1.p.Name);//結(jié)果為小明,分析見下圖
        }
    }

相關(guān)文章

  • C#中foreach語句深入研究

    C#中foreach語句深入研究

    這篇文章主要介紹了C#中foreach語句深入研究,本文通過手動(dòng)實(shí)現(xiàn)迭代器來了解foreach語句的本質(zhì),揭示其原理,需要的朋友可以參考下
    2015-06-06
  • C#小程序15位轉(zhuǎn)18位身份證號(hào)代碼

    C#小程序15位轉(zhuǎn)18位身份證號(hào)代碼

    現(xiàn)在我們使用的都是18位身份證號(hào),而以前都是15位身份證號(hào),而如何將15位身份證號(hào)轉(zhuǎn)18位身份證號(hào)轉(zhuǎn)換為18位身份證號(hào)呢?
    2013-02-02
  • C#中如何將MongoDB->RunCommand結(jié)果映射到業(yè)務(wù)類的方法總結(jié)

    C#中如何將MongoDB->RunCommand結(jié)果映射到業(yè)務(wù)類的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于C#中如何將MongoDB->RunCommand結(jié)果映射到業(yè)務(wù)類的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • Unity?UGUI?按鈕綁定事件的?4?種方式匯總

    Unity?UGUI?按鈕綁定事件的?4?種方式匯總

    UGUI?可視化創(chuàng)建以及關(guān)聯(lián)事件很方便,?動(dòng)態(tài)創(chuàng)建可以利用創(chuàng)建好的?Prefab?進(jìn)行實(shí)例化,?只是在關(guān)聯(lián)事件上有些復(fù)雜,這篇文章主要介紹了Unity?UGUI?按鈕綁定事件的?4?種方式,需要的朋友可以參考下
    2022-01-01
  • C#?線程簡(jiǎn)單介紹及使用詳情

    C#?線程簡(jiǎn)單介紹及使用詳情

    這篇文章主要介紹了C#?線程簡(jiǎn)單介紹及使用詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • C#中sizeof的用法實(shí)例分析

    C#中sizeof的用法實(shí)例分析

    這篇文章主要介紹了C#中sizeof的用法,包括了常見的用法及注釋事項(xiàng),需要的朋友可以參考下
    2014-09-09
  • c#系列 list詳情

    c#系列 list詳情

    這篇文章主要介紹了c#系列 list,list 本質(zhì)是一個(gè)數(shù)組,。就跟我們操作系統(tǒng)一樣,提前申請(qǐng)內(nèi)存大小。所以我們程序一般都有一個(gè)申請(qǐng)內(nèi)存,實(shí)際使用內(nèi)存,內(nèi)存碎片這幾個(gè)概念,下面?zhèn)z看文章詳細(xì)內(nèi)容吧
    2021-10-10
  • 基于Unity Line Renderer組件的常用屬性說明

    基于Unity Line Renderer組件的常用屬性說明

    這篇文章主要介紹了基于Unity Line Renderer組件的常用屬性說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Entity Framework主從表數(shù)據(jù)加載方式

    Entity Framework主從表數(shù)據(jù)加載方式

    這篇文章介紹了Entity Framework主從表數(shù)據(jù)加載方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 一個(gè)進(jìn)程間通訊同步的C#框架引薦

    一個(gè)進(jìn)程間通訊同步的C#框架引薦

    這篇文章主要介紹了一個(gè)進(jìn)程間通訊同步的C#框架,代碼具有相當(dāng)?shù)姆€(wěn)定性和可維護(hù)性,隨著.NET的開源也會(huì)被注入更多活力,推薦!需要的朋友可以參考下
    2015-07-07

最新評(píng)論

施秉县| 中方县| 塔城市| 洛南县| 雷波县| 西和县| 南召县| 称多县| 屏东市| 万载县| 石屏县| 镇安县| 博湖县| 昭平县| 南华县| 垫江县| 大宁县| 黔东| 虹口区| 双峰县| 建阳市| 梨树县| 舞钢市| 北碚区| 曲麻莱县| 澜沧| 大姚县| 福建省| 富裕县| 泸定县| 纳雍县| 清苑县| 西林县| 昭平县| 西乌珠穆沁旗| 松阳县| 海安县| 镶黄旗| 岳阳县| 南靖县| 鞍山市|