您目前已離線,請等候您的網際網路重新連線

INFO: Visual Basic .NET 的 Option Explicit 和 Option Strict

結論
本文介紹二個 Option 陳述式:
  • Option Strict
  • Option Explicit
Option Strict 是 Visual Basic .NET 中新的陳述式,Option Explicit 在舊版 Microsoft Visual Basic 中即可使用。

本文分為下列各節:
其他相關資訊

Option Explicit 陳述式

根據預設,Visual Basic .NET 編譯器強制宣告明確變數,您必須宣告每個變數才能使用。 如果要變更這個預設行為,請參閱<變更預設專案值>一節。

回到頁首

Option Explicit 陳述式

根據預設,Visual Basic .NET 編譯器不嚴格強制資料類型。 若要變更這個預設行為,請參閱<變更預設專案值>一節。

Option Strict 將隱含資料類型轉換限制為僅可放寬轉換。 放寬轉換明確禁止任何可能流失資料的資料類型轉換以及任何數字類型和字串之間的轉換。 如需放寬轉換的詳細資訊,請參閱<放寬轉換>一節。

使用 Option Strict 陳述式時,這個陳述式必須顯示在任何其他程式碼之前。 在 Visual Basic .NET 中,您通常可以將任何資料類型以隱含方式的轉換為任何其他資料類型。 資料類型值轉換為較低精準度或較低容量的資料類型時,可能會導致資料流失。 不過,當這種轉換可能導致資料流失時,您會收到執行時期錯誤訊息。 Option Strict 會在編譯時通知您這些類型的轉換來避免。

Option Strict 也會在下列情況時產生錯誤訊息:
  • 未宣告的變數。 這是因為 Option Strict 也意味 Option Explicit
  • 後期繫結。
回到頁首

放寬轉換

下表列出標準的放寬轉換。

資料類型放寬後的資料類型
ByteByteShortIntegerLongDecimalSingleDouble
ShortShortIntegerLongDecimalSingleDouble
IntegerIntegerLongDecimalSingleDouble
LongLongDecimalSingleDouble
DecimalDecimalSingleDouble
SingleSingleDouble
DoubleDouble
任何列舉類型它的基礎整數類型和任何放寬後的類型
CharCharString
任何類型Object、任何實作介面
任何衍生類型任何衍生來源的基本類型
任何資料類型或物件類型

下列轉換可能會失去精準度:
  • Integer 轉換成 Single
  • Long 轉換成 SingleDouble
  • Decimal 轉換成 SingleDouble
不過,這些轉換不會導致資訊的損失或大小的改變。

放寬轉換一定成功,您隨時可以用隱含的方式執行放寬轉換。

回到頁首

明確型態轉換

明確轉換使用類型轉換關鍵字。 Visual Basic .NET 提供幾個這樣的關鍵字,能將括弧中的運算式套用到您想要的資料類型。 這些關鍵字以函數的身份執行,但是編譯器產生內嵌程式碼。 因此,明確轉換的執行速度比函數呼叫稍快。

下表列出可用的轉換關鍵字。
類型轉換關鍵字轉換運算式
轉換後的資料類型
可轉換的運算式資料類型
CBoolBoolean任何數字類型 (包含 Byte 和列舉類型)、StringObject
CByteByte任何數字類型、任何列舉類型、BooleanStringObject
CCharCharStringObject
CDateDateStringObject
CDblDouble任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CDecDecimal任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CIntInteger任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CLngLong任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CObjObject任何類型
CShortShort任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CSngSingle任何數字類型 (包含 Byte 和列舉類型)、BooleanStringObject
CStrString任何數字類型 (包含 Byte)、BooleanCharChar arrayDateObject
CType 在逗點 (,) 後輸入特定內容如果轉換為基本類型 (包含基本類型陣列),則為跟允許的對應轉換關鍵字相同的類型。

如果轉換為複合類型,則為實作介面和繼承來源類別。

回到頁首

變更預設專案值

您可以根據每個專案類型,變更 Option ExplicitOption Strict 的預設值。 例如,建立新的 Visual Basic .NET 應用程式時,Option Explicit 值設為 On。 您可以將這個預設值變更為 Off

如果要變更 Option ExplicitOption Strict 的預設值,請按下列步驟執行:
  1. 找到系統上的下列專案範本檔案:
    • EmptyProjectIPF.vbproj
    • EmptyWebProjectIPF.vbproj
    • WebApplication.vbproj
    • WebControl.vbproj
    • WebService.vbproj
    • WindowsApplication.vbproj
    • WindowsControl.vbproj
    • WindowsService.vbproj
  2. 以「記事本」開啟專案範本。
  3. 在範本的 <Settings> 區段中新增 (如果已存在則編輯) OptionStrictOptionExplicit 行。

    例如,下列程式碼示範如何將 OptionExplicit 設為 Off,將 OptionStrict 設為 On
    <VisualStudioProject>    <VisualBasic>        <Build>            <Settings                 OutputType = "Exe"                 StartupObject = ""                OptionExplicit = "Off"                OptionStrict = "On"            >						
  4. 對每個要變更預設行為的專案範本重複步驟 2 和 3。
回到頁首
casting option strict explicit
內容

文章識別碼:311329 - 最後檢閱時間:09/16/2003 18:15:00 - 修訂: 1.0

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbinfo kbbug kbupgrade kbdebug kbcompiler kbideproject KB311329
意見反應