知识大全 VB.NET中的Option Explicit和Option Strict

Posted 类型

篇首语:千磨万击还坚劲,任尔东西南北风。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.NET中的Option Explicit和Option Strict相关的知识,希望对你有一定的参考价值。

VB.NET中的Option Explicit和Option Strict  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  VB NET中的Option Explicit  和 Option Strict是针对编译器的语句 作为程序员总是想在程序编译期时候发现程序的错误 而不愿在运行期来发现 当一个程序成功编译以后 你可能会认为该程序已经通过所有编译期的错误检查 不会再有其它错误使你吓一跳 然而事实上 程序运行一次没有错误并不表明下次运行时是否会发生错误 因此 如果潜在的运行期的错误在编译期被及时发现 应用程序将变得非常稳定

  Option Explicit语句决定编译器是否要求所有的变量被显式的声明 语法如下

  Option Explicit [ On | Off ]

  如果选择On 则编译器是否要求所有的变量被显式的声明 如果选择Off 则编译器是允许变量的隐式声明 这样以来 可不是一件好事 比如在代码的编写过程中 不小心敲错了变量名 由于编译器允许变量的隐式声明 所以在程序编译的时候 是不会发生错误的 但是在运行期可能会发生不可预期的错误 因此在代码中最好不要用Option Explicit Off

  Option Strict语句决定编译器类型的隐式转换方面的要求 语法如下

  Option Strict [ On | Off ]

  如果选择On 则编译器允许放宽的隐式类型转换 如果选择Off 则编译器是不仅允许放宽的类型转换 而且允许缩窄的类型转换 对于放宽的类型转换 一般不会发生数据的丢失或不正确的结果 例如 将一个整型(Integer)的变量转换为长整型(Long)的变量是一个放宽的类型转换 长整型可以包含所有整型变量的值 相反 从长整型向整型变量的转换是一个缩窄的类型转换 因为一些长整型的值是超出整型所表示的范围的

  VB NET默认放宽的类型转换 例如在下面的代码的第二行中将会自动发生放宽的类型转换 赋值表达式右边的变量自动转换为长整型变量 以便能保存到变量b中

  Dim a As Integer =

  Dim b As Long = a

  自动发生的类型转换 称为 隐式类型转换

  现在来考虑相反的情况

  Dim a As Long =

  Dim b As Integer = a

  上面代码的第二行 试图进行隐式缩窄的类型转换 编译器是否允许这种转换 决定于Option Strict的设置 如果Option Strict设置为On 试图进行隐式缩窄的类型转换将会发生编译错误 设置为Off 编译器将自动在后台进行类型转换 这样在程序运行时 如果实际要转换的值超出目标类型的范围 将会导致程序抛出异常

  对于某些程序 有时进行缩窄的类型转换是必要的 因此程序员可能知道某个变量进行类型转换时 会超出目标类型的范围 而添加适当的代码来处理可能发生的异常 这种情况可以通过适当的函数来进行显式的类型转换 例如

  Dim a As Long =

  Dim b As Integer = CInt(a)

cha138/Article/program/net/201311/11692

相关参考

知识大全 VB.NET中的组件开发

VB.NET中的组件开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!简介组件其实是一段可以重用的

知识大全 VB.NET中的TextBox控件详解

VB.NET中的TextBox控件详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TextBox

知识大全 ASP.NET 3.5中的Login控件应用vb.net实现

ASP.NET3.5中的Login控件应用vb.net实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 了解VB.NET中的常量与枚举

了解VB.NET中的常量与枚举  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在程序运行的过程中

知识大全 了解VB.NET中的常量与枚举功能

了解VB.NET中的常量与枚举功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   在

知识大全 VB.NET中的动态代码生成技巧

VB.NET中的动态代码生成技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文的讨论也将着

知识大全 浅谈VB.NET中的跨进程消息钩子

浅谈VB.NET中的跨进程消息钩子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们都知道在V

知识大全 VB.NET 中的组件开发源代码剖析

VB.NET中的组件开发源代码剖析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!         

知识大全 ADO在vb.net中的使用(与datagrid结合)

ADO在vb.net中的使用(与datagrid结合)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 消息队列在VB.NET数据库开发中的应用

消息队列在VB.NET数据库开发中的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们先简单