詳解兩類(lèi)C#基本數(shù)據(jù)類(lèi)型
C#基本數(shù)據(jù)類(lèi)型中的值類(lèi)型是直接存儲(chǔ)它的數(shù)據(jù)內(nèi)容,而引用類(lèi)型存儲(chǔ)的是對(duì)象的引用,這兩種類(lèi)型對(duì)變量的賦值有著不同的含義。
值類(lèi)型包括:簡(jiǎn)單類(lèi)型、結(jié)構(gòu)類(lèi)型、枚舉類(lèi)型;引用類(lèi)型包括:Object 類(lèi)型、類(lèi)類(lèi)型、接口、代表元、字符串類(lèi)型、數(shù)組。
C#基本數(shù)據(jù)類(lèi)型-值類(lèi)型示例
int m = 0;int n = m;m = 1; //此時(shí) n 仍然是 0,因?yàn)?m 和 n 的數(shù)據(jù)存儲(chǔ)在不同的區(qū)域引用類(lèi)型示例
class CFoo{ public int n;}
void Main(){ CFoo f1 = new CFoo(); f1.n = 0; CFoo f2 = f1; f1.n = 1; //此時(shí) f2.n 變成了 1,因?yàn)?f2 與 f1 的內(nèi)容是同一地址}值類(lèi)型
值類(lèi)型有:byte(1)、sbyte(1)、short(2)、ushort(2)、int(4)、uint(4)、long(8)、ulong(8)、float(4)、double(8)、decimal(8)、char、bool、枚舉、結(jié)構(gòu)。
上述中括號(hào)中的數(shù)字表示字節(jié)數(shù),byte、ushort、uint、ulong 為無(wú)符號(hào)類(lèi)型(沒(méi)有負(fù)數(shù)),順便說(shuō)一下 sbyte 是有符號(hào)的字節(jié)。
這些類(lèi)型是.NET Framework 類(lèi)型的別名的別名,具體對(duì)應(yīng)關(guān)系,請(qǐng)參見(jiàn)由 String 與 string 引出的。
C#基本數(shù)據(jù)類(lèi)型-引用類(lèi)型
引用類(lèi)型有:對(duì)象類(lèi)型、類(lèi)類(lèi)型、接口、代表元、字符串類(lèi)型、數(shù)組。
雖然字符串類(lèi)型(string)是引用類(lèi)型,但微軟為了我們?cè)O(shè)計(jì)方便,重載了其中的一些操作符,使得它應(yīng)用起來(lái)就像是值類(lèi)型一樣。
本文來(lái)自心之鎮(zhèn)的博客園文章《C#基本數(shù)據(jù)類(lèi)型》
【編輯推薦】