基礎才是重中之重 值型別和引用型別

2021-09-06 08:41:46 字數 1239 閱讀 6212

回到目錄

在 visual basic 中,資料型別是基於其類別實現。

根據特定型別的變數儲存的是自己的資料還是指向資料的指標,可以對 visual basic 資料型別進行分類。

如果它儲存的是自己的資料,則它是值型別;如果它儲存指向記憶體中其他位置的資料的指標,則它是引用型別。

值型別

如果資料型別在它自己的記憶體分配中儲存資料,則該資料型別就是「值型別」。

值型別包括:

每個結構是值型別,因此,即使它包含引用型別成員。

因此,值型別 (如 char 和 integer 由 .net framework 結構實現。

可以通過使用保留關鍵字(例如 decimal)宣告值型別。

也可以使用 new 關鍵字初始化值型別。

這對於值型別有乙個帶引數的建構函式的情況尤為有用。

此示例有 decimal(int32, int32, int32, boolean, byte) 建構函式,它從提供的部分生成新的 decimal 值。

引用型別

「引用型別」包含指向儲存資料的其他記憶體位置的指標。

引用型別包括:

類是一種「引用型別」。

因此,諸如 object 和 string 之類的引用型別都受 .net framework 類支援。

請注意,每個陣列都是一種引用型別,即使其成員是值型別。

由於每種引用型別表示基礎 .net framework 類,則必須使用 new 關鍵字,在初始化時。

下面的語句初始化乙個陣列。

var person = new person{}

非型別的元素

以下程式設計元素未限定為型別,因為您無法將它們中的任何乙個指定為宣告元素的資料型別:

使用物件資料型別

可以將引用型別或值型別指派給 object 資料型別的變數。

object 變數總是儲存指向資料的指標,從不儲存資料本身。

然而,如果為 object 變數指派值型別,該變數的行為將如同儲存自己的資料一樣。

有關更多資訊,請參見 object 資料型別。

可以檢視 object 變數是否通過將為引用型別或值型別到 microsoft.visualbasic 命名空間的 information 類的 isreference 方法。

如果 object 變數的內容表示引用型別,則 information.isreference 返回 true。

回到目錄

基礎才是重中之重 值型別的初始值

回到目錄 在時我們需要搞清楚一些值型別的初始值,即當你宣告乙個變數後,它事實上是有乙個預設值的,下面選自 值型別 預設值 bool false byte 0 char 0 decimal 0.0m double 0.0d enum 表示式 e 0 產生的值,其中 e 為 enum 識別符號。floa...

c 基礎值類和引用型別

值型別 int double char decimal bool enum struct 引用型別 string 陣列 自定義類 集合 object 介面 值傳遞傳遞的值得本身 引用傳遞傳遞的是對物件的引用 ref 將值傳遞改變為引用傳遞 值傳遞和引用傳遞 int n1 10 int n2 n1 n...

基礎才是重中之重 類是怎麼執行的

回到目錄 對於乙個程式設計師來說,有必要知道乙個概念的同時也解它的執行過程,這樣對於寫出更好更安全的程式是有幫助的。大牛們不是一天就成為大牛的,而是經過一步一步的實踐,不斷的知識的積累才成為大牛的,呵呵。今天是我 基礎才是重中之重 文章系列的又一講,也是最基礎的一講,類,已經class 主要從出生到...