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

首頁 > 編程 > C# > 正文

C#中string.Empty和null的區別詳解

2020-01-24 01:47:07
字體:
來源:轉載
供稿:網友

這是一個及其常見的問題,網上已經有關于這個問題的很多討論。但是我覺得都是不求甚解,有一些還是在誤導別人。下面我來說下我對這三者的理解,如有錯誤的地方請大家及時指正。

  一:""與string.Empty我認為是一樣的。網上有一篇被轉載了幾十遍的文章是這樣說的string.Empty 不分配存儲空間,"" 分配一個長度為空的存儲空間,我認為這句話是錯誤并且含糊不清的。

  1、實際上Empty是string類中的一個靜態的只讀字段,他的定義是這樣的:

  public static readonly String Empty = "";

  也就是說string.Empty的內部實現是等于””的。

  2、我要反駁string.Empty 不分配存儲空間,"" 分配一個長度為空的存儲空間這個觀點。首先string.Empty與""都會分配存儲空間,具體的說是都會在內存的棧和堆上分配存儲空間。

  有一點先說明一下,引用類型是將對象是實際數據保存在堆上, 將對象在堆上的地址保存在棧上。因此string.Empty與””都會在棧上保存一個地址這個地址占4字節,指向內存堆中的某個長度為0的空間,這個空 間保存的是string.Empty的實際值。這個我可以用VS2010跟蹤下內存給大家演示。

上圖中的0x01e81228即是變量str在棧中存儲的地址。

對于"",請看下圖

這個圖的效果跟上圖是一樣的,也就是說””也是在棧上保存了一個地址。

  3、CLR會對字符串進行優化,所以””和string.Empty也都會被優化。

  聲明如下兩個變量

復制代碼 代碼如下:

  string str1=””;

  string str2=””;


  str1與str2的引用會是相同的也就是str1與str2在棧上保存的地址上相同的。請看下圖

上圖是str1的地址。

上圖是str2的地址

4、如果非要說””與string.Empty有什么不同的話,我覺得1是寫法不一樣,string.Empty看起來好看~!~。2是在優化 方面稍有差別。string.Empty于c#對””在語法級別的優化。這點可以通過string.Empty的內部實現看出來。

  public static readonly String Empty = "";

  也就是說””是通過CLR進行優化的,CLR會維護一個字符串池,以防在堆中創建重復的字符串。而string.Empty是一種c#語法級別 的優化,是在C#編譯器將代碼編譯為IL(即MSIL)時進行了優化,即所有對string類的靜態字段Empty的訪問都會被指向同一引用,以節省內存 空間。

  所以對””的優化更依賴CLR。

  給大家看一下二者編譯后的IL代碼:

  string  str1=””;  編譯后如下:

  ldstr      ""         //從字符串池中取出一個””(實際上取的是地址)

  stfld      string ClassLibrary1.Class1::str1   //將””賦給str1(實際上賦的是地址)

  string  str2=string.Empty; 編譯后如下:

  ldsfld     string [mscorlib]System.String::Empty//取得string類的靜態字段Empty(實際上取的是地址)

  stfld      string ClassLibrary1.Class1::str2//將Empty賦給str2(實際上賦的是地址)

  總結:說了這么一大推我自己都覺得羅嗦,而且初學者朋友可能會看不懂。本人語文學的不好,表達能力一般還請大家諒解,下面我會挑要害來說。

  “”與string.Empty在用法與性能上基本沒區別。string.Empty是在語法級別對””的優化。

  二、string.Empty與null的區別

  因為string.Empty與””基本是一樣的,所以string.Empty與null的區別也就代表了””與null的區別。

  1、  那就是string.Empty會在堆上占用一個長度為0的空間,而null不會。具體內容如下:

  string str1=””;

  string str2=null;

  如剛才所說str1會在棧上保存一個地址,這個地址占4字節,指向內存堆中的某個長度為0的空間,這個空間保存的是str1的實際值。

  str2同樣會在棧上保存一個地址,這個地址也占4字節,但是這個地址是沒有明確指向的,它哪也不指,其內容為0x00000000。如下圖


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产精品自产a区红杏吧| 欧美极品少妇与黑人| 亚洲欧美日韩第一区| 亚洲香蕉av在线一区二区三区| 久久精品夜夜夜夜夜久久| 久久中国妇女中文字幕| 中文字幕精品久久| 日韩欧美亚洲综合| 国产精品第10页| 午夜精品久久久久久久久久久久| 亚洲天堂av在线免费| 浅井舞香一区二区| 中文字幕在线国产精品| 亚洲精品在线看| 性夜试看影院91社区| 欧美整片在线观看| 亚洲精品v欧美精品v日韩精品| 97热精品视频官网| 久久亚洲国产精品| 欧美亚洲日本网站| 日韩中文字幕精品视频| 国产精品18久久久久久麻辣| 久久男人的天堂| 国产日韩欧美在线视频观看| 欧美亚洲另类视频| 伊人久久久久久久久久久久久| 日韩欧美中文字幕在线观看| 亚洲a在线观看| 欧美黑人xxxx| 日韩欧美成人网| 亚洲一区二区在线播放| 欧美限制级电影在线观看| 亚洲黄色www网站| 亚洲精品97久久| 九九九热精品免费视频观看网站| 亚洲国产成人在线视频| 国产一区二区三区18| 少妇激情综合网| 第一福利永久视频精品| 国产日韩欧美中文| 91九色国产社区在线观看| 亚洲在线www| 国产精品福利网站| 久久国产加勒比精品无码| 亚洲色图综合久久| 国产精品久久久久久久久借妻| 亚洲热线99精品视频| 国产精品极品美女粉嫩高清在线| 91精品国产成人www| 亚洲国产精品va在线| 欧美日本啪啪无遮挡网站| 日韩av在线免费| 欧美性猛交xxxx富婆弯腰| 欧美性一区二区三区| 亚洲成人精品在线| 欧美亚洲日本黄色| 欧美在线视频免费观看| 午夜精品一区二区三区视频免费看| 欧美午夜片在线免费观看| 91在线网站视频| 久久精品青青大伊人av| 中文字幕日韩av| 亚洲区免费影片| 九色成人免费视频| 欧美亚洲免费电影| 欧美日韩视频在线| 色午夜这里只有精品| 亚洲男人天堂手机在线| 欧美一级电影免费在线观看| 91tv亚洲精品香蕉国产一区7ujn| 国产91精品最新在线播放| 97久久久免费福利网址| 中文字幕亚洲无线码a| 777国产偷窥盗摄精品视频| 久久91精品国产91久久跳| 欧美视频二区36p| 高清日韩电视剧大全免费播放在线观看| 久久精品美女视频网站| 日本a级片电影一区二区| 色婷婷成人综合| 96sao精品视频在线观看| 国产精品h片在线播放| 欧美亚洲伦理www| 欧美日韩成人在线观看| 岛国av午夜精品| 欧美激情精品久久久久久| 国语自产精品视频在线看抢先版图片| 亚洲最大中文字幕| 精品女同一区二区三区在线播放| 91精品国产综合久久香蕉最新版| 欧美性xxxx极品高清hd直播| 久久伊人免费视频| 高跟丝袜一区二区三区| 性色av一区二区三区在线观看| 精品国产一区二区三区久久久| 欧洲中文字幕国产精品| 91在线直播亚洲| 亚洲视频专区在线| 国产精品一区二区三区免费视频| 日韩欧美一区二区三区| 91国在线精品国内播放| 精品视频—区二区三区免费| 97人洗澡人人免费公开视频碰碰碰| 日本午夜人人精品| 欧美激情精品在线| 日韩av中文字幕在线| 亚洲精品日韩av| 欧美中文字幕视频在线观看| 欧美专区日韩视频| 国产成人一区三区| 欧美国产高跟鞋裸体秀xxxhd| 国产精品入口日韩视频大尺度| 欧美视频二区36p| 午夜免费在线观看精品视频| 亚洲精品国产综合区久久久久久久| 欧美激情精品久久久久| 亚洲国内精品视频| 538国产精品一区二区在线| 日韩在线视频导航| 欧美猛男性生活免费| 亚洲精品国产精品国自产观看浪潮| 日韩欧中文字幕| 日韩福利视频在线观看| 91在线视频一区| 26uuu亚洲伊人春色| 亚洲成人激情视频| 久久99久久99精品中文字幕| 国产美女久久久| 久久久久久久影视| 亚洲国产日韩欧美综合久久| 91系列在线观看| 成人久久精品视频| 日韩在线视频免费观看高清中文| 国产精品综合不卡av| 久久久999精品| 国产精品视频一区二区高潮| 日韩美女免费观看| 亚洲aⅴ男人的天堂在线观看| 欧美激情视频网站| 91po在线观看91精品国产性色| 日韩av免费网站| 亚洲一区av在线播放| 国产原创欧美精品| 国产精品久久久久久久久免费看| 亚洲国产天堂网精品网站| 成人在线观看视频网站| 亚洲精品国产综合久久| 国产欧美日韩视频| 国产成人精品一区二区三区| 国产成人精品电影久久久| 欧美中文字幕在线播放| 国产精品一区二区三区免费视频| 日韩精品中文在线观看| 欧美成人激情图片网| 国产91精品黑色丝袜高跟鞋| 色琪琪综合男人的天堂aⅴ视频| www.99久久热国产日韩欧美.com| 国产精品亚洲综合天堂夜夜| 日韩有码在线视频| 中文字幕av一区二区三区谷原希美| 国产精品免费一区二区三区都可以| 国产盗摄xxxx视频xxx69| 91欧美精品午夜性色福利在线| 日韩在线一区二区三区免费视频|