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

文章翻譯 文章翻譯
文章編號: 311329 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文介紹二個 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。

屬性

文章編號: 311329 - 上次校閱: 2003年9月16日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
關鍵字:?
kbinfo kbbug kbupgrade kbdebug kbcompiler kbideproject KB311329
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com