下表顯示 Visual Basic 數據類型、其支援的 Common Language Runtime 類型、其名義記憶體配置,以及其值範圍。
| Visual Basic 類型 | Common Language Runtime 類型結構 | 名義記憶體配置 | 值範圍 |
|---|---|---|---|
| 布爾值 | Boolean | 視實作平臺而定 |
True 或 False |
| 位元組 | Byte | 1 個位元組 | 0 到 255 (未簽署) |
| Char (單一字元) | Char | 2 個位元組 | 0 到 65535 (未簽署) |
| 日期 | DateTime | 8 個字節 | 9999年12月31日下午0:00:00:00(午夜)至11:59:59 |
| 十進位 | Decimal | 16 個字節 | 0 到 +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) † 沒有小數點:0 到 +/-7.92281625142643337593543950335,小數點右邊有 28 個位置: 最小非零數位為 +/-0.000000000000000000000000001 (+/-1E-28) † |
| 雙 精度浮點數 | Double | 8 個字節 | -1.79769313486231570E+308 到 -4.94065645841246544E-324 † 負值: 4.94065645841246544E-324 到 1.79769313486231570E+308 † 正值 |
| 整數 | Int32 | 4 個位元組 | -2,147,483,648 到 2,147,483,647 (簽署) |
| Long (長整數) | Int64 | 8 個字節 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (9.2...E+18 †) (簽署) |
| 物件 | Object (類別) | 32 位平臺上的 4 個字節 64 位平臺上的8個字節 |
任何類型都可以儲存在類型的變數中 Object |
| SByte | SByte | 1 個位元組 | -128 到 127 (簽署) |
| 短 (短 整數) | Int16 | 2 個位元組 | -32,768 到 32,767 (簽署) |
| 單精度 浮點數 | Single | 4 個位元組 | -3.4028235E+38 到 -1.401298E-45 † 負值; 1.401298E-45 到 3.4028235E+38 † 正值 |
| 字串 (可變長度) | String (類別) | 視實作平臺而定 | 0 到大約 20 億個 Unicode 字元 |
| UInteger | UInt32 | 4 個位元組 | 0 到 4,294,967,295 (未簽署) |
| ULong | UInt64 | 8 個字節 | 0 到 18,446,744,073,709,551,615 (1.8...E+19 †) (未簽署) |
| 使用者定義 (結構) | (繼承自 ValueType) | 視實作平臺而定 | 結構的每個成員都有一個範圍,由其數據類型決定,且與其他成員的範圍無關 |
| UShort | UInt16 | 2 個位元組 | 0 到 65,535 (未簽署) |
† 在 科學表示法中,“E”是指 10 的乘冪。 因此 3.56E+2 表示 3.56 x 102 或 356,而 3.56E-2 表示 3.56 / 102 或 0.0356。
備註
對於包含文字的字串,請使用 函 StrConv 式,將文字格式從一個文字格式轉換成另一個格式。
除了在宣告語句中指定數據類型之外,您還可以使用類型字元來強制某些程式設計專案的數據類型。 請參閱 輸入字元。
記憶體耗用量
當您宣告基本數據類型時,假設其記憶體耗用量與其名義記憶體配置相同並不安全。 這是因為下列考慮:
記憶體指派。 Common Language Runtime 可以根據應用程式執行所在的平臺目前特性來指派記憶體。 如果記憶體幾乎已滿,它可能會盡可能將您的宣告元素封裝在一起。 在其他情況下,它可能會將其記憶體位址對齊自然硬體界限,以將效能優化。
平台寬度。 64 位平臺上的記憶體指派與32位平臺上的指派不同。
複合數據類型
相同的考慮適用於複合數據類型的每個成員,例如結構或陣列。 您無法只依賴將類型成員的名義儲存配置加在一起。 此外,還有其他考慮,例如:
開銷。 某些複合類型有額外的記憶體需求。 例如,陣列會針對數位本身使用額外的記憶體,也會針對每個維度使用額外的記憶體。 在32位平臺上,此額外負荷目前是每個維度的12個字節加上8個字節。 在 64 位平臺上,這項需求會加倍。
記憶體配置。 您無法安全地假設記憶體中的記憶體中的記憶體順序與宣告順序相同。 您甚至無法假設位元組對齊方式,例如2位元組或4位元組界限。 如果您要定義類別或結構,而且需要控制其成員的儲存配置,您可以將 屬性套用 StructLayoutAttribute 至類別或結構。
對象額外負荷
Object參考任何基本或複合數據類型的 ,除了數據類型中包含的數據之外,也會使用 4 個字節。