Option Strict 语句

更新: 2008 年 7 月

将隐式数据类型转换限制为只能是扩大转换。

Option Strict { On | Off }

各部分说明

  • On
    可选。启用 Option Strict 检查。

  • Off
    可选。禁用 Option Strict 检查。如果未指定 On 或 Off,默认值为 Off。

备注

如果使用,Option Strict 语句必须出现在文件中的任何其他源代码语句之前。

Visual Basic 允许将许多数据类型转换为其他数据类型。在将一种数据类型的值转换为另一种精度较低或容量较小的数据类型时,可能发生数据丢失。如果此类“收缩转换”失败,将会发生运行时错误。Option Strict 确保可为这些收缩转换提供编译时通知,从而可避免这种错误。

说明:

对于从 For Each…Next 集合中的元素到循环控制变量的转换,禁止显示收缩转换错误。有关更多信息和示例,请参见 For Each...Next 语句 (Visual Basic) 中的“收缩转换”一节。

除了不允许隐式收缩转换之外,对于“后期绑定”,Option Strict 也会产生错误。如果某个对象被分配给声明为 Object 类型的变量,该对象就是后期绑定的。

强烈建议使用 Option Strict On,原因是它能够提供“强类型”、可防止会导致数据丢失的意外类型转换、不允许后期绑定并可提高性能。

说明:

如果未在代码中指定 Option Strict,编译器默认值是 Option Strict Off。

还可以在 Visual Studio 集成开发环境 (IDE) 或命令行中设置 Option Strict。

说明:

显示的对话框和菜单命令可能会与“帮助”中的描述有所不同,具体取决于您现用的设置或版本。若要更改设置,请单击“工具”菜单上的“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

在 IDE 中设置 Option Strict

  1. 在“工具”菜单上单击“选项”。

  2. 打开“项目和解决方案”节点。

  3. 选择“VB 默认值”。

  4. 修改“Option Strict”设置。

在命令行中设置“Option Strict”

示例

下面的示例演示 Option Strict 语句如何不允许将会导致数据丢失的后期绑定和转换。

Option Strict On
Dim thisVar As Integer
Dim thisObj As Object = New widget
thisVar = 1000   ' Declared variable does not generate error.
' Attempting to convert Double to Integer generates a COMPILER ERROR.
thisVar = 1234567890.9876542 ' causes ERROR
' Late-bound call generates a COMPILER ERROR.
Call thisObj.Method1() ' causes ERROR

请参见

概念

扩大转换和收缩转换

参考

Option Compare 语句

Option Explicit 语句 (Visual Basic)

/optioncompare

/optionexplicit

/optionstrict

“选项”对话框 ->“项目”->“Visual Basic 默认值”

修订记录

日期

修订记录

原因

2008 年 7 月

增加了有关收缩转换和 For Each…Next 的说明。

客户反馈。