国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

理解C#系列/核心C#/數據類型

2019-11-14 16:12:48
字體:
來源:轉載
供稿:網友

數據類型

數據類型

C#把數據類型分為兩種:值類型和引用類型。

值類型和引用類型

值類型的變量直接指向存儲的值,引用類型的變量指向值的引用。[理解:引用就像一個柜子的號碼牌,可以順藤摸瓜找到柜子。假如你再次對一個值類型的變量賦值,那么就會改變值,假如你再次對一個引用類型的變量賦值,那么就只是換了一個號碼牌,指向了其他的柜子,對前一個柜子是不做修改的。]

這兩種類型的數據存儲在內存的不同地方,值類型數據存儲在堆棧中,而引用類型的數據(值的引用)存儲在托管堆上。

在使用的時候的區別

int i=20;int j=i;

int定義整數類型的變量,整數類型屬于值類型,j在賦值的時候復制了i的值,所以這會在內存的兩個地方存儲值20,如果改變其中一個,不會影響另外一個。

Apple a = new Apple();a.color = "red";Apple b = a;b.color = "green";

Apple是我們定義的蘋果類型,我們用new Apple()創造了一個實際的蘋果,并用引用類型的變量a指向了這個創造的蘋果。

在第二行設定了蘋果的顏色是紅色。

在第三行我們添加了一個新變量,賦值了a這個引用類型的數據,所以b也是指向了a指向的那個蘋果,并沒有產生第二個蘋果。

在第四行,我們修改b指向的蘋果的顏色為綠色,這時候實際上查看a.color也會發現蘋果的顏色是綠色了,因為始終就只有一個蘋果呀。

Apple a = null;

這表示讓一個蘋果類型的變量不指向任何實際的蘋果,如果你想使用這個變量a代表的實際的蘋果,就會報錯,因為沒有東西呀,怎么能使用呢。值類型的變量就不可以賦值null,這是引用類型的專利。

當已經沒有任何一個變量指向某個實例的時候,這個實例就不能被訪問到了,CLR的垃圾收集器會定期找尋這樣的實例,刪除它們,把它們占用的內存返回給操作系統。

預定義數據類型

C#有15個預定義類型,其中13個是值類型,兩個是引用類型(string和object)

13個值類型中有8個整型:{分正負的:8位sbyte,16位short,32位int,64位long}{無符號的:8位byte,16位ushort,32位uint,64位ulong}。

13個值類型中有2個浮點類型:{float:32位單精度浮點數}{double:64位雙精度浮點數}。

13個值類型中還有:{decimal:通常用于財務計算的128位高精度十進制表示法}{bool:用于包含布爾值true或false}{char:為了保存單個字符的值}。

值類型的賦值方法:

int i = 1234;uint ui = 1234U;long l = 1234L;long x = 0x12ab;//用16進制賦值需添加0x前綴ulong ul = 1234UL;float f = 12.3Fdouble d = 12.3;decimal d = 12.30M;bool b = true;char c = 'A';char c = '/n';//轉義符

2個預定義的引用類型:{object:根類型,面向對象概念}{string:字符串類型,但擁有許多值類型的特性,使它常被誤認為值類型}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新竹市| 榆树市| 鹤庆县| 冷水江市| 泽普县| 湾仔区| 麟游县| 大悟县| 双辽市| 镇平县| 道真| 新平| 麦盖提县| 文成县| 同江市| 玉林市| 闻喜县| 西乌珠穆沁旗| 高邮市| 望奎县| 营山县| 历史| 图们市| 敦煌市| 大渡口区| 常德市| 同心县| 精河县| 元阳县| 甘孜县| 建瓯市| 枣庄市| 利辛县| 鄂托克旗| 淮安市| 瑞昌市| 宾川县| 康乐县| 阿克| 临沧市| 仁寿县|