日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

.net 基元类型,引用类型和值类型

發(fā)布時(shí)間:2024/10/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net 基元类型,引用类型和值类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基元類型(primitive type):

  編譯器直接支持的數(shù)據(jù)類型稱為基元類型(primitive type)。

string 與 String:

  由于C#中的string (一個(gè)關(guān)鍵字)直接映射到System.String (一個(gè)FCL類型),所以兩者沒(méi)有區(qū)別,都可以使用。

  但是在C#中int始終映射在System.Int32,所以不管在 64操作系統(tǒng)還是32位操作系統(tǒng)上,代表的都是32位整數(shù)。

? ? ?在C#中l(wèi)ong映射到的是System.Int64,但是在其他編程語(yǔ)言中,long可能映射到Int16或Int32。 例如C++

checked 與 unchecked 基元類型。

? ? 是否溢出檢查

  

    static void Main(string[] args){ Byte b = 200;b = checked((Byte)(b + 200));Console.ReadLine();}     static void Main(string[] args){ Byte b = 200;b = (Byte)checked((b + 200));Console.ReadLine();}

?

引用類型與值類型: 

  CLR支持兩種類型:引用類型與值類型:

  1.任何被稱為“類”的類型都是引用類型。

  2.文檔將所有值類型都稱為結(jié)構(gòu)或枚舉。

class SomeRef{public Int32 x;}struct SomeVal{public Int32 x;}static void ValueTypeDemo(){SomeRef r1 = new SomeRef();SomeVal v1 = new SomeVal();r1.x = 5;v1.x = 5;Console.WriteLine(r1.x);Console.WriteLine(v1.x);
SomeRef r2
= r1;SomeVal v2 = v1;r1.x = 8;v1.x = 9;Console.WriteLine(v1.x);Console.WriteLine(v2.x);}

由上例子可以看出,重新賦值后的 v1 值改變,但是v2值并沒(méi)有改變。

而 r1,r2 值全部改變,原因在于 r1,r2是引用類型,改變的只是地址的指向,所以當(dāng)一個(gè)地址改變后 另外的地址也跟著指向新的地址。

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/dragon-L/p/3707106.html

總結(jié)

以上是生活随笔為你收集整理的.net 基元类型,引用类型和值类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。