在 Visual Basic 中,數(shù)據(jù)類(lèi)型是基于其類(lèi)別實(shí)現(xiàn)。 根據(jù)特定類(lèi)型的變量存儲(chǔ)的是自己的數(shù)據(jù)還是指向數(shù)據(jù)的指針,可以對(duì) Visual Basic 數(shù)據(jù)類(lèi)型進(jìn)行分類(lèi)。 如果它存儲(chǔ)的是自己的數(shù)據(jù),則它是值類(lèi)型;如果它保存指向內(nèi)存中其他位置的數(shù)據(jù)的指針,則它是引用類(lèi)型。 值類(lèi)型
如果數(shù)據(jù)類(lèi)型在它自己的內(nèi)存分配中存儲(chǔ)數(shù)據(jù),則該數(shù)據(jù)類(lèi)型就是“值類(lèi)型”。 值類(lèi)型包括:
每個(gè)結(jié)構(gòu)是值類(lèi)型,因此,即使它包含引用類(lèi)型成員。 因此,值類(lèi)型 (如 Char 和 Integer 由 .NET framework 結(jié)構(gòu)實(shí)現(xiàn)。 可以通過(guò)使用保留關(guān)鍵字(例如 Decimal)聲明值類(lèi)型。 也可以使用 New 關(guān)鍵字初始化值類(lèi)型。 這對(duì)于值類(lèi)型有一個(gè)帶參數(shù)的構(gòu)造函數(shù)的情況尤為有用。 此示例有 Decimal(Int32, Int32, Int32, Boolean, Byte) 構(gòu)造函數(shù),它從提供的部分生成新的 Decimal 值。 引用類(lèi)型
“引用類(lèi)型”包含指向存儲(chǔ)數(shù)據(jù)的其他內(nèi)存位置的指針。 引用類(lèi)型包括:
類(lèi)是一種“引用類(lèi)型”。 因此,諸如 Object 和 String 之類(lèi)的引用類(lèi)型都受 .NET Framework 類(lèi)支持。 請(qǐng)注意,每個(gè)數(shù)組都是一種引用類(lèi)型,即使其成員是值類(lèi)型。 由于每種引用類(lèi)型表示基礎(chǔ) .NET framework 類(lèi),則必須使用 New 關(guān)鍵字,在初始化時(shí)。 下面的語(yǔ)句初始化一個(gè)數(shù)組。 var person = new Person{} 非類(lèi)型的元素
以下編程元素未限定為類(lèi)型,因?yàn)槟鸁o(wú)法將它們中的任何一個(gè)指定為聲明元素的數(shù)據(jù)類(lèi)型:
使用對(duì)象數(shù)據(jù)類(lèi)型
可以將引用類(lèi)型或值類(lèi)型指派給 Object 數(shù)據(jù)類(lèi)型的變量。 Object 變量總是存儲(chǔ)指向數(shù)據(jù)的指針,從不存儲(chǔ)數(shù)據(jù)本身。 然而,如果為 Object 變量指派值類(lèi)型,該變量的行為將如同存儲(chǔ)自己的數(shù)據(jù)一樣。 有關(guān)更多信息,請(qǐng)參見(jiàn) Object 數(shù)據(jù)類(lèi)型。 可以查看 Object 變量是否通過(guò)將為引用類(lèi)型或值類(lèi)型到 Microsoft.VisualBasic 命名空間的 Information 類(lèi)的 IsReference 方法。 如果 Object 變量的內(nèi)容表示引用類(lèi)型,則 Information.IsReference 返回 True。 |
|
來(lái)自: 昵稱10504424 > 《C#》