注册
登录
搜索
帮助
巧巧读书论坛
»
.NET技术
»
VB.NET论坛
» VB.net编译器设置中的问题
搜索
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
VB.net编译器设置中的问题
Test
中级会员
UID
3338
帖子
620
精华
0
积分
4490
经验值
1712 点
威望
1625
贡献
0
巧巧币
23 元
阅读权限
30
个人空间
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2007-4-9 12:10
只看该作者
VB.net编译器设置中的问题
vb.net中的"option explicit"、“Option Strict”和"option compare"是做什么的?
搜索更多相关主题的帖子:
编译
设置
相关主题
初学者,你应当如何学习C 以及编程
如何编写高效的MySQL应用
如何在Oracle存储过程中实现分页
如何利用集群技术实现Web服务器的负载均衡
更多相关主题
UID
3338
帖子
620
精华
0
积分
4490
经验值
1712 点
威望
1625
阅读权限
30
注册时间
2007-3-6
查看详细资料
TOP
douces
版主
UID
4
帖子
1681
精华
5
积分
8212
经验值
3946 点
威望
2400
贡献
0
巧巧币
1136 元
阅读权限
100
个人空间
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2007-4-9 12:12
只看该作者
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 = 5
Dim b As Long = a
自动发生的类型转换,称为“隐式类型转换”。
现在来考虑相反的情况:
Dim a As Long = 5
Dim b As Integer = a
上面代码的第二行,试图进行隐式缩窄的类型转换。编译器是否允许这种转换,决定于
Option Strict
的设置,如果
Option Strict
设置为
On
,试图进行隐式缩窄的类型转换将会发生编译错误;设置为
Off
,编译器将自动在后台进行类型转换。这样在程序运行时,如果实际要转换的值超出目标类型的范围,将会导致程序抛出异常。
对于某些程序,有时进行缩窄的类型转换是必要的。因此程序员可能知道某个变量进行类型转换时,会超出目标类型的范围,而添加适当的代码来处理可能发生的异常。这种情况可以通过适当的函数来进行显式的类型转换,例如:
Dim a As Long = 5
Dim b As Integer = CInt(a)
上面的变换即称为“显式的类型转换”,因为程序员明确的要求进行整型变换。注意尽管从表面上来看,上面的代码与前面的“隐式类型转换”相比,多了一次函数调用,但是编译后的代码是一样的,所以执行的效率和隐式类型转换一样。
Option Compare 语句
声明要在比较字符串数据时使用的默认比较方法。
Option Compare { Binary | Text }
各部分说明
Binary
可选。导致基于从字符的内部二进制表示形式导出的排序顺序进行字符串比较。
Text
可选。导致基于由系统的区域设置确定的不区分大小写的文本排序顺序进行字符串比较。
备注
如果使用,
Option Compare
语句必须出现在文件中的任何其他源代码语句之前。
Option Compare
语句指定类、模块或结构的字符串比较方法(
Binary
或
Text
)。如果未包括
Option Compare
语句,则默认的文本比较方法是
Binary
。
在 Microsoft Windows 中,排序顺序由代码页确定。。
在下面的示例中,“英语/欧洲”代码页 (ANSI 1252) 中的字符是使用
Option Compare Binary
排序的,这将产生一个典型的二进制排序顺序。
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
在使用
Option Compare Text
对相同代码页中的相同字符进行排序时,将产生以下文本排序顺序。
(A=a) < (À = à) < (B=b) < (E=e) < (Ê = ê) < (Z=z) < (Ø = ø)
还可以在 Visual Studio 集成开发环境 (IDE) 或命令行中设置
Option Compare
。
在集成开发环境 (IDE) 中设置“Option Compare”
在“工具”菜单上选择“选项”。
打开“项目和解决方案”节点。
选择“VB 默认值”。
修改“Option Compare”设置。
在命令行中设置“Option Compare”
在
vbc
命令中包括
/optioncompare
编译器选项。
示例
下面的示例使用
Option Compare
语句将二进制比较设置为默认字符串比较方法。
Visual Basic
' Set the string comparison method to Binary ("AAA" < "aaa").
Option
Compare Binary
下面的示例使用
Option Compare
语句将区分大小写的文本排序顺序设置为默认字符串比较方法。
Visual Basic
' Set the string comparison method to Text ("AAA" = "aaa").
Option
Compare Text
UID
4
帖子
1681
精华
5
积分
8212
经验值
3946 点
威望
2400
阅读权限
100
注册时间
2006-5-16
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
基础应用区
巧巧有问必答
操作系统
Windows
Linux
其他操作系统
软件交流
常用软件问题
聊天工具专区
办公系统专区
软件工具下载
硬件问题
电脑游戏
网络游戏
单机游戏
电脑安全
专业技术区
程序语言
VB论坛
C与C++
VC与MFC
Delphi与C++Builder
JAVA
汇编语言
数据结构与算法
软件工程
.NET技术
ASP.NET论坛
C#.NET论坛
VB.NET论坛
VC.NET论坛
网站开发
网页制作
ASP论坛
PHP论坛
JSP论坛
JavaScript
XML论坛
Ajax论坛
资源下载
服务器架设
网站运营
数据库开发
PB开发
SQL Server
Oracle论坛
Access论坛
MySQL论坛
DB2论坛
Sybase论坛
VFP论坛
其他数据库
设计天地
Photoshop论坛
CorelDraw论坛
Flash论坛
3DMax论坛
其它设计论坛
作品欣赏区
工程应用
AutoCAD论坛
Matlab论坛
室内装修设计论坛
网络技术
网络提问篇
网络基础
Cisco技术区
华为技术区
网络管理
案例分析
考试认证(题集)
网络协议
网络安全
非技术交流区
我的故事
精彩贴图
站务管理处
广告信息发布
控制面板首页
编辑个人资料
积分交易
积分记录
公众用户组
个人空间管理