討論數(shù)據(jù)類型
.Net中的數(shù)據(jù)類型是程序員需要認真掌握的基礎(chǔ)知識。.NET 中類型的兩個基本類別是“值類型”和“引用類型”。基元類型、枚舉和結(jié)構(gòu)為值類型。類、字符串、標準模塊、接口、數(shù)組和委托為引用類型。
所有的類型要么是值類型,要么是引用類型,但有一種情況例外。根類型 System.Object ,它非常特殊,因為它既不是引用類型也不是值類型,而且不能實例化。因此,類型 Object 的變量可包含值類型或引用類型。
不過無論值類型還是引用類型,它們的聲明方式都是一樣的,當然它們的語義是不同的。
值類型
值類型直接存儲在堆棧上,要么在數(shù)組中,要么在另一個類型中。值類型總是直接訪問;不可能創(chuàng)建對值類型的引用。值類型的值不能為空引用,值類型的變量賦值會創(chuàng)建所賦的值的副本。
值類型副本創(chuàng)建意義舉例 Dim i As Int32 = 10
Dim j As Int32 = i
j = 20 'i=10
基礎(chǔ)類型 什么是基礎(chǔ)類型呢?簡單的講就是如果一個類型的值是可以使用常數(shù)來描述的,該類型就是基礎(chǔ)類型。當表達式的操作數(shù)均為基元類型常數(shù)時,編譯器是可以在編譯時計算表達式的。這種表達式被稱為常數(shù)表達式。基本類型總是有初始值的。
VB.Net定義的基礎(chǔ)類型:整數(shù)(包括字節(jié)),浮點、布爾、日期、字符和字符串。
分類 類型 存儲分配 整數(shù)值類型 Byte 1 Short 2 Integer 4 Long 8 浮點值類型 Single 4 Double 8 Decimal 16 布爾 Boolean 2 日期 Date 8 字符 Char 2 字符串 String 取決于實現(xiàn)平臺
如果大家有心的話,可以從Boolean和Char的分配空間看出:.Net是基于Unicode來表示數(shù)據(jù)的,所以在.Net中英文字符和中文字符所占的空間
|