溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中值類型和引用類型的示例分析

發布時間:2021-09-09 16:46:18 來源:億速云 閱讀:133 作者:小新 欄目:編程語言

小編給大家分享一下C#中值類型和引用類型的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

概念:

1.值類型:數據存儲在內存的堆棧中,從堆棧中可以快速地訪問這些數據,因此,值類型表示實際的數據。

2.引用類型:表示指向存儲在內存堆中的數據的指針或引用(包括類、接口、數組和字符串)。

C#中定義的值類型包括原類型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚舉(enum)、結構(struct)

引用類型包括:類、數組、接口、委托、字符串等。

區別:

基本區別在于它們在內存中的存儲方式。值類型只將值存放在內存中,這些值類型都存儲在堆棧中。原始數據類型(如bool和int)都屬于此類型。而引用類型的內存單元中只存放內存堆中對象的地址,而對象本身放在內存堆中。如果引用的值類型的值是null,則表示未引用任何對象。

堆和堆棧區別:

堆和堆棧是兩個不同的概念,在內存中的存儲位置也不相同,

堆一般用于存儲可變長度的數據,如字符串類型;

堆棧則用于存儲固定長度的數據,如整型類型的數據int(每個int變量占用四個字節)。由數據存儲的位置可以得知,當把一個值變量賦給另一個值變量時,會在堆棧中保存兩個完全相同的值;而把一個引用變量賦給另一個引用變量,則會在堆棧中保存對同一個堆位置的兩個引用,即在堆棧中保存的是同一個堆的地址。在進行數據操作時,對于值類型,由于每個變量都有自己的值,因此對一個變量的操作不會影響到其它變量;對于引用類型的變量,對一個變量的數據進行操作就是對這個變量在堆中的數據進行操作,如果兩個引用類型的變量引用同一個對象,實際含義就是它們在堆棧中保存的堆的地址相同,因此對一個變量的操作就會影響到引用同一個對象的另一個變量。

概念:

1.值類型:數據存儲在內存的堆棧中,從堆棧中可以快速地訪問這些數據,因此,值類型表示實際的數據。

2.引用類型:表示指向存儲在內存堆中的數據的指針或引用(包括類、接口、數組和字符串)。

C#中定義的值類型包括原類型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚舉(enum)、結構(struct)

引用類型包括:類、數組、接口、委托、字符串等。

區別:

基本區別在于它們在內存中的存儲方式。值類型只將值存放在內存中,這些值類型都存儲在堆棧中。原始數據類型(如bool和int)都屬于此類型。而引用類型的內存單元中只存放內存堆中對象的地址,而對象本身放在內存堆中。如果引用的值類型的值是null,則表示未引用任何對象。

堆和堆棧區別:

堆和堆棧是兩個不同的概念,在內存中的存儲位置也不相同,

堆一般用于存儲可變長度的數據,如字符串類型;

堆棧則用于存儲固定長度的數據,如整型類型的數據int(每個int變量占用四個字節)。由數據存儲的位置可以得知,當把一個值變量賦給另一個值變量時,會在堆棧中保存兩個完全相同的值;而把一個引用變量賦給另一個引用變量,則會在堆棧中保存對同一個堆位置的兩個引用,即在堆棧中保存的是同一個堆的地址。在進行數據操作時,對于值類型,由于每個變量都有自己的值,因此對一個變量的操作不會影響到其它變量;對于引用類型的變量,對一個變量的數據進行操作就是對這個變量在堆中的數據進行操作,如果兩個引用類型的變量引用同一個對象,實際含義就是它們在堆棧中保存的堆的地址相同,因此對一個變量的操作就會影響到引用同一個對象的另一個變量。

以上是“C#中值類型和引用類型的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女