a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

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

2020-01-24 03:08:19
字體:
供稿:網(wǎng)友

一、結(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é)果為小明,分析見下圖
        }
    }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 狠狠操夜夜操天天操 | www.男人天堂| 久草免费在线视频 | 亚洲大片在线播放 | 欧美大片一区二区 | 国产精品一区二区三区不卡视频 | 国产精品免费观看 | 亚洲va中文字幕 | 亚洲欧洲精品成人久久奇米网 | 成人黄色三级视频 | 国产福利一区二区在线 | 国模一区二区三区 | 欧美性受| 午夜视频网站 | 精品国产色 | 久久99精品久久久 | 日韩福利 | 超碰999| 国产精品无码专区在线观看 | 日韩电影毛片 | 九九九九九九精品任你躁 | 久草在线视频福利 | 日韩在线一区二区 | 国产精品女人视频 | 日韩视频免费看 | 黄色毛片一级 | 日韩精品一区二区三区四区视频 | 成人欧美一区二区三区黑人孕妇 | 偷拍亚洲视频 | 久久久日韩精品一区二区三区 | 中文字幕高清视频 | 三级网址日本 | 一区二区三区在线观看免费 | 精品一区二区三区三区 | 中文字幕欧美日韩一区 | 蜜桃久久久久久 | 精品三级在线观看 | 日韩中文字幕在线 | 久久久久久亚洲精品 | 亚洲毛片在线观看 | 国产日韩精品视频 |