C# OOP技術(shù) 引用類(lèi)型和值類(lèi)型
在C#中,數(shù)據(jù)根據(jù)變量的類(lèi)型以?xún)煞N方式中的一種存儲(chǔ)在一個(gè)變量中。變量的類(lèi)型分為兩種:引用類(lèi)型和值類(lèi)型,其區(qū)別如下:
?值類(lèi)型在內(nèi)存的同一處存儲(chǔ)它們自己和它們的內(nèi)容。
?引用類(lèi)型存儲(chǔ)指向內(nèi)存中其他某個(gè)位置(稱(chēng)為堆)的引用,實(shí)際內(nèi)容存儲(chǔ)在這個(gè)位置。
實(shí)際上,在使用C#時(shí),不必過(guò)多地考慮這個(gè)問(wèn)題。到目前為止,所使用的string變量(這是引用類(lèi)型)與使用其他簡(jiǎn)單變量(大多數(shù)是值類(lèi)型,例如im)的方式完全相同.
值類(lèi)型和引用類(lèi)型的一個(gè)主要區(qū)別是:值類(lèi)型總是包含一個(gè)值,而引用類(lèi)型可以是null,表示它們不包含值。但是,可使用可空類(lèi)型創(chuàng)建值類(lèi)型,使值類(lèi)型在這個(gè)方面的行為方式類(lèi)似于引用類(lèi)型(即可以為null)。
只有string和object類(lèi)型是簡(jiǎn)單的引用類(lèi)型。數(shù)組也是隱式的引用類(lèi)型。我們創(chuàng)建的每個(gè)類(lèi)都是引用類(lèi)型,這就是在這里強(qiáng)調(diào)這一點(diǎn)的原因。
點(diǎn)擊加載更多評(píng)論>>