亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

淺談C#中的值類型和引用類型

2020-01-24 01:05:50
字體:
來源:轉載
供稿:網友

一、基本概念

C#只有兩種數據類型:值類型和引用類型

值類型在線程棧分配空間,引用類型在托管堆分配空間

值類型轉為引用類型稱成為裝箱,引用類型轉為值類型稱為拆箱

以下是值類型和引用類型對照表

從上圖可以簡單看出:string,Object,數組,class是引用類型,簡單類型,枚舉,結構是值類型。

二、代碼展示

定義一個類和結構調用賦值

內存分配情況如下圖:

從這張圖可以看出,class實例化出來的對象,指向了內存堆中分配的空間;truct實例化出來的對象,是在內存棧中分配。

修改代碼如下:

內存分配情況:

由上圖可以知:

復制代碼 代碼如下:

object obj=”abc”;
string i=(string)obj;

值類型和引用類型儲的位置不一樣
如果是引用類型,當兩個對象指向同一個地方,修改某一個的時候,其它對象的值會發生改變

using System;namespace ConsoleApplication2{  //引用類型(因為‘class')  public class SomeRef  {    public int x { get; set; }  }  //值類型(因為‘struct')  public struct SomeVal  {    public int x{ get; set; }  }  class Program  {    static void Main(string[] args)    {      SomeRef r1=new SomeRef(); //在堆上分配      SomeVal v1 = new SomeVal();//在棧上分配      r1.x = 5;    //提領指針      v1.x = 5;    //在棧上修改      Console.WriteLine(r1.x); //顯示5       Console.WriteLine(v1.x); //顯示5      SomeRef r2 =r1; //只復制引用(指針)      SomeVal v2 =v1; //在棧上分配并賦值成員      r1.x = 8;    //r1.x和r2.x都會修改      v1.x = 8;    //v1.x會更改,v2.x不會      Console.WriteLine(r1.x); //顯示8       Console.WriteLine(r2.x); //顯示8       Console.WriteLine(v1.x); //顯示8      Console.WriteLine(v2.x); //顯示5      Console.ReadKey();    }  }}

三、值類型裝箱、拆箱

1、裝箱:就是將值類型的數據打包到引用類型的實例中(比如將string類型的值abc賦給object對象obj)

復制代碼 代碼如下:
String i=”abc”;
object obj=(object)i;

裝箱時到底發生的事情:

1)、在托管堆中分配內存。分配的內存量是值類型各字段所需的內存量,還要加上托管堆所有對象都有的兩個額外成員(類型對象指針和同步塊索引)所需的內存量

2)、值類型的字段復制到新分配的堆內存

3)、返回對象地址,現在該地址是對象引用;值類型成了引用類型

2、拆箱:就是從引用數據中提取值類型(比如將object對象obj的值賦給string類型的變量i)

復制代碼 代碼如下:
object obj=”abc”;
string i=(string)obj;

拆箱不是裝箱過程倒過來,拆箱的代價愛比裝箱低的多,拆箱是獲取指針的過程,該指針指向包含在一個對象中的原始值類型。

拆箱后將堆中的字段包含的值復制棧的值類型實例中。

3、值類型變為引用類型不一定要裝箱,例如:

復制代碼 代碼如下:
string str = "joye.net" + 26; //需要將26裝箱為string類型
string str1 = "joye.net" + 26.ToString(); //tostring后不需要裝箱

感興趣的可以用IL看一下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合久久精品亚洲国产| 亚洲欧美一区二区激情| 91成人精品网站| 久99久在线视频| 色悠悠国产精品| 精品美女国产在线| 91高清视频在线免费观看| 国产成人精品综合久久久| 亚洲美女激情视频| 国产精品久久久久久久av大片| 久久久成人的性感天堂| 欧洲成人在线视频| 亚洲视频在线观看免费| 国产精品久久久久免费a∨大胸| 国产精品爽黄69天堂a| 国产成人精品免费久久久久| 久久色精品视频| 成人在线一区二区| 欧洲亚洲在线视频| 播播国产欧美激情| 日韩电影在线观看永久视频免费网站| 中文字幕不卡在线视频极品| 亚洲精品狠狠操| 欧美午夜视频一区二区| 亚洲最大在线视频| 亚洲精品午夜精品| 色噜噜国产精品视频一区二区| 51视频国产精品一区二区| 欧美专区中文字幕| 国产精品成人av性教育| 日本韩国欧美精品大片卡二| 91成人性视频| 热久久这里只有精品| 日韩av毛片网| 日本一欧美一欧美一亚洲视频| 国产极品精品在线观看| 国产精品69久久| 亚洲乱码国产乱码精品精天堂| 成人激情视频在线| 亚洲图片欧美午夜| 欧洲成人免费视频| 91在线精品播放| 久久影视电视剧凤归四时歌| 91久久久久久久久久| 欧美一级视频一区二区| 国产美女精品免费电影| 影音先锋欧美在线资源| 国产精品久久久久久久av电影| 久久69精品久久久久久国产越南| 国产精品一区二区久久久| 欧美最猛黑人xxxx黑人猛叫黄| 欧美激情亚洲精品| 欧美二区在线播放| 久久久久国产精品免费网站| 亚洲中国色老太| 青青青国产精品一区二区| 欧美亚洲国产日本| 日韩成人在线播放| 亚洲人成电影网站色www| 久久久天堂国产精品女人| 亚洲视频第一页| 九九久久久久久久久激情| 亚洲成人av在线播放| 欧美丰满老妇厨房牲生活| 欧美一区二粉嫩精品国产一线天| 亚洲视频网站在线观看| 日韩av综合网站| 国产精品91在线观看| 91av在线播放| 亚洲一区二区自拍| 操人视频在线观看欧美| 日韩av黄色在线观看| 成人性生交大片免费观看嘿嘿视频| 国产精品女主播| 欧美精品激情在线| 欧美成人午夜视频| 51色欧美片视频在线观看| 欧美一区在线直播| 久久天堂电影网| 中文字幕在线观看亚洲| 欧美日韩免费在线观看| 国产欧美日韩中文| 久久久精品久久久久| 91日本在线视频| 欧洲美女7788成人免费视频| 国产亚洲精品91在线| 国产精品成人观看视频国产奇米| 亚洲第五色综合网| 视频在线观看一区二区| 81精品国产乱码久久久久久| 日本高清久久天堂| 国内精品一区二区三区| 亚洲精品456在线播放狼人| 另类少妇人与禽zozz0性伦| 日韩在线观看免费网站| 亚洲天堂av综合网| 欧美激情第1页| 久久99国产精品久久久久久久久| 2018中文字幕一区二区三区| 亲爱的老师9免费观看全集电视剧| 亚洲风情亚aⅴ在线发布| 韩剧1988免费观看全集| 日本伊人精品一区二区三区介绍| 日韩欧美国产免费播放| 中文字幕欧美日韩| 爽爽爽爽爽爽爽成人免费观看| 久久精品成人动漫| 国产午夜精品久久久| 国产精品男人爽免费视频1| 在线播放亚洲激情| 国产精品久久一区主播| 国产深夜精品福利| 亚洲精品短视频| 欧美电影在线播放| 久久久久久久久久婷婷| 亚洲大尺度美女在线| 日韩欧美在线播放| 国产欧美日韩综合精品| 韩日欧美一区二区| 欧美成人午夜免费视在线看片| 国产香蕉97碰碰久久人人| 成人妇女淫片aaaa视频| 日韩在线免费观看视频| 亚洲一区二区免费在线| 日韩av免费在线| 日韩av大片在线| 久久91精品国产91久久久| 欧美在线视频网| 亚洲精品日韩激情在线电影| 日韩欧美在线免费观看| 亚洲国产精品yw在线观看| 亚洲一区二区在线播放| 成人免费视频97| 国产精品久久网| 亚洲福利影片在线| 亚洲人成电影网| 911国产网站尤物在线观看| 亚洲亚裔videos黑人hd| 亚洲第一区中文字幕| 国产69精品久久久久9999| 亚洲xxxx18| 欧美日韩一二三四五区| 欧美精品激情blacked18| 国产精品99久久久久久人| 亚洲精品自拍偷拍| 国产精品女视频| 91日本视频在线| 久久国产精品免费视频| 亚洲毛片在线观看.| 国产欧美日韩中文| 国产精品27p| 91免费在线视频网站| 亚洲黄色片网站| 孩xxxx性bbbb欧美| 国产一区二区三区三区在线观看| 国产精品视频1区| 亚洲欧美日韩国产中文专区| 欧美激情一二区| 亚洲精品久久久久| 三级精品视频久久久久| 66m—66摸成人免费视频| 亚洲欧美三级在线| 久久午夜a级毛片| 中文字幕一区二区三区电影|