.net 基元类型,引用类型和值类型
生活随笔
收集整理的這篇文章主要介紹了
.net 基元类型,引用类型和值类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基元類型(primitive type):
編譯器直接支持的數據類型稱為基元類型(primitive type)。
string 與 String:
由于C#中的string (一個關鍵字)直接映射到System.String (一個FCL類型),所以兩者沒有區別,都可以使用。
但是在C#中int始終映射在System.Int32,所以不管在 64操作系統還是32位操作系統上,代表的都是32位整數。
? ? ?在C#中long映射到的是System.Int64,但是在其他編程語言中,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.文檔將所有值類型都稱為結構或枚舉。
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值并沒有改變。
而 r1,r2 值全部改變,原因在于 r1,r2是引用類型,改變的只是地址的指向,所以當一個地址改變后 另外的地址也跟著指向新的地址。
?
?
?
?
?
轉載于:https://www.cnblogs.com/dragon-L/p/3707106.html
總結
以上是生活随笔為你收集整理的.net 基元类型,引用类型和值类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转基因技术的原理是什么 这些你要知道
- 下一篇: Bootstrap初学(一)