知识大全 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中的组件开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!简介组件其实是一段可以重用的
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中的常量与枚举 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在程序运行的过程中
了解VB.NET中的常量与枚举功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
VB.NET中的动态代码生成技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文的讨论也将着
浅谈VB.NET中的跨进程消息钩子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们都知道在V
VB.NET中的组件开发源代码剖析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ADO在vb.net中的使用(与datagrid结合)
ADO在vb.net中的使用(与datagrid结合) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
消息队列在VB.NET数据库开发中的应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们先简单