1. 程式人生 > WINDOWS開發 >C#反推為什麼string是引用型別

C#反推為什麼string是引用型別

  為什麼string是引用型別?C#裡面眾所周知,有兩大型別,分別引用型別值型別引用型別有類(class)和字串(string),而值型別有int、double、char、bool等等。

  分析string為什麼是引用型別之前,要分析一下,int整型bool布林值為什麼是值型別。int和bool這倆型別的值是已經存在寫死在某個地方了。例如bool只有true和false兩個值,int的值段-2147483648到2147483647。所以可以說值型別的內容已經寫死了。比如你用int型別宣告一個欄位,賦值的時候你只能賦值-2147483648到2147483647的數字,不然就會報系統錯誤。字元(char)也是,字元是把計算機的各種單字元寫好了存放在一個地方,舉例26個字母,0-9都是字元。然而字串是由字串組合一起形成的。因為字串是字元組合而成的,內容是值型別

組合成,說明這個內容無法寫死,可以用各種不同的字元組合成不同的新的字串。所以字串不可能是值型別值型別的內容根本無法滿足字串的多變。(因為之前稍微看了一本《30天自制系統》裡面第一步就是把二進位制的內容複製到一個檔案裡,我猜裡面放的就是所需要的固定值。這些是反推,程式碼有點讓我回想到unsafe的位置,自己理論知識太low,擱置這。對計算機瞭解不夠深。這裡只是方便一些新手知道)

    string  str="abc";char a=a;char b=b;char c=c;