c#字串的特性

來源:互聯網
上載者:User

標籤:style   blog   http   ar   使用   sp   strong   on   div   

談到字串,大家自然覺得簡單,但是總是有一些小的問題隱約出現,下面我就系統的說一下字串的問題,有說不到日後再予補充。

1,首先String是一個類,string只是String類的一個別名,別名的意思:另一個代號,就是和String一樣使用。

2,string str=“abc”,和char[] cha={‘a‘,‘b‘,‘c‘}的不同。大家不要簡單認識一個字串就是一個字元數組。要理解本質。

就是字串的不變性,string只是可讀,但不可寫。但字元數組可讀可寫。

可讀:字串中的str[0]=a  str[1]=b  str[2]=c,字元中的str[0]=a  str[1]=b  str[2]=c,

可寫:字串裡的元素是不可寫的

class Program    {        static void Main(string[] args)        {            char[] cha = { ‘a‘, ‘b‘, ‘c‘ };            Console.WriteLine(cha[0]);            cha[0] = ‘b‘;            Console.WriteLine(cha);            string str = "abc";            Console.WriteLine(str[0]);            // str[0] = ‘d‘;            Console.ReadKey();        }

若str[0]=‘d‘;將會報“錯誤 1 無法對屬性或索引器“string.this[int]”賦值 -- 它是唯讀“字元數組可以。  

這裡有人提出,str=“abc”;str+=“d”,Console.WriteLine(str);出現abcd;這不是表明字元傳可以更改嗎?可寫嗎?

下面咱們就針對這個問題自習分析一下。

看到這個圖,相比大家大家明白了字串的不變性。再來個圖證明這個不變性。

3,這裡又一次證明了字串不可變性,另外提出一個問題,那就是字串的“暫存池”的概念。

string str=“abc”;string str1=“abc”兩者指的是同一個對象。

但是這僅僅是string str=“abc”;string str1=“abc,而不是char[] cha={‘a‘,‘b‘,‘c‘}; string str=new string(cha);

 

在調試的時候開啟監看式視窗,輸入*變數,監視變數的地址,兩者是同一地址,證明指向的同一變數。不同地址,自然不同變數。

 

總結,處理字串 一定要有接受他的傳回值,因為每處理一次,就會產生一個對象。

常常將字串執行個體,ToCharArray();然後再調用string的(char[])建構函式。“修改”字串中的元素。

 

問題:這裡會讓我們想到傳遞和引用傳遞的用法。以後再予更新。

4,

string str=null;

str="";

string str1=string.Empty;

string str2="";

string str3=“ ”;//有個空格

運行過str=null後,str的地址沒有變化,依然是0x00000000,所以說,沒有分配記憶體空間。

運行完後,如顯示,證明string.Empty和“”是一樣的,當然也和先賦null,再“”一樣。但是擁有一個空白字元就不同了。

 

c#字串的特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.