C#把數據類型分為值類型和引用類型。值類型操作簡單,引用類型更省空間。
C#一共有15個預定義類型,其中13個值類型(8個整型、2個浮點類型、decimal、bool、char),2個引用類型(string、object)。
仔細看,值類型都是空間使用較小的類型,引用類型都是空間使用較大的類型(如string、我們自己聲明的類)。(這里先不考慮作為值類型的結構)
string 因為空間使用大概率較大,所以被作為引用類型。但是如果和一般的引用類型的賦值操作一樣,那么容易被在不需要改動的情況下修改。
所以,微軟給了折中的辦法,每次值的變更,都會給出一個新的地址給變量。原來的地址還是原來的值,自己的修改不影響別人。
這樣,string既有引用類型的空間節省,又有值類型的便捷。