共用方式為


資料型別是 .NET Framework 型別

更新:2007 年 11 月

Visual Basic 中的每個基礎資料型別,都受到 System 命名空間中的結構或類別所支援。編譯器使用每個資料型別關鍵字做為基礎結構或類別的別名。例如,利用保留字 Byte 宣告變數,與利用完整結構名稱 System.Byte 宣告變數並無不同。

.NET Framework 中也可使用其他的類別和結構

Common Language Runtime (CLR) 也支援 Visual Basic 不提供的結構和類別。例如,System.Guid 結構提供全域唯一識別項 (GUID),而 System.TimeZone 類別則支援時區。您可以使用這些型別宣告變數和常數,並可以存取 .NET Framework 實作這些型別的方法。然而對於未提供的型別,Visual Basic 不支援相關作業或型別轉換。

實值型別和參考型別

在 .NET Framework 中,結構是屬於「實值型別」(Value Type),而類別則是屬於「參考型別」(Reference Type)。基於這個原因,像 Char 和 Integer 這類的實值型別是由 .NET Framework 結構所實作,然而像 Object 和 String 這類的參考型別則是受到 .NET Framework 類別所支援。請注意,每個陣列即代表參考型別,即使其成員屬於實值型別。而每個結構則代表實值型別,即使它具有參考型別成員。

由於每個參考型別都分別代表著一個基礎 .NET Framework 類別,因此在初始化時您必須使用 New (Visual Basic) 關鍵字。下列陳述式會進行陣列初始化。

Dim totals() As Single = New Single(8) {}

您也可以使用 New 關鍵字來初始化實值型別。若型別具有包含參數的建構函式 (Constructor) 則特別適用。Decimal(Int32, Int32, Int32, Boolean, Byte) 建構函式是這種範例中的一個,它會依據提供的組件建置新的 Decimal 值。

資料型別具有成員

由於受到 .NET Framework 結構和類別的支援,所以 Visual Basic 資料型別具有「成員」(Member)。這些成員包括有建構函式、方法、屬性及欄位。您可以在變數上存取成員 (不包括建構函式),方式則與您存取物件上的方法及屬性相同。

下列範例使用 System.DateTime 結構的 YearMonthDay 屬性以及 DaysInMonth 方法,以判斷當月還有多少天。

Dim current As Date = Now
Dim daysRemaining As Integer
daysRemaining = Date.DaysInMonth(current.Year, current.Month) - current.Day

請注意,您必須使用型別的名稱 (Date) 或宣告為該型別的變數名稱 (current),以限定資料型別成員的參考。

資料型別成員的範例

下列程式碼原型 (Prototype) 將說明資料型別中一些有用的方法、屬性和欄位。

<Char>.IsDigit() ' Returns True if character is a numeric digit.

<Char>.IsLower() ' Returns True if character is a lowercase letter.

<Date>.IsLeapYear() ' Returns True if current year is a leap year.

<Date>.ToUniversalTime() ' Returns local date/time converted to UTC.

<Double>.IsInfinity() ' Returns True if contents represent infinity.

<Double>.IsNaN() ' Returns True if contents are not a number (0/0).

<Long>.MaxValue ' Constant representing largest positive Int64 value.

<Object>.GetType() ' Returns Type object representing type of <Object>.

<Object>.GetType().GetTypeCode() ' Returns type code of <Object>.

<String>.Chars(<index>) ' Character at position <index> of <String>.

<String>.Length ' Number of characters currently in <String>.

所有數字型別 (Numeric Type),包括 Byte 和 Char,會公開 MaxValueMinValue 公用欄位,這在處理這些型別時很有用。

不保證資料型別成員的等價

.NET Framework 也提供數個資料型別方法,看起來似乎是 Visual Basic 函式和關鍵字的對等用法。然而,Visual Basic 並非一定會使用 .NET Framework 方法來達成轉換或其他作業,因此結果未必會相同。

例如,ToSingle 方法對於 Decimal 運算式所執行的動作類型,與 CSng 關鍵字所執行的相同。但是,CSng 並不保證會使用 System.dataType.ToSingle,因此在邊際或界限條件下結果也未必相同。

一般而言,您應該要使用 Visual Basic 程式設計項目,因為它們較容易使用,並可以讓程式碼更易於閱讀。在某些情況下,可能會需要一些由 .NET Framework 方法提供的其他功能。如需這部分的相關範例,請參閱資料型別疑難排解中的「Mod 運算子沒有傳回精確的結果」。

請參閱

概念

實值型別和參考型別

結構和類別

參考

Boolean

Byte

Char

DateTime

Decimal

Double

Guid

TimeZone