为了账号安全,请及时绑定邮箱和手机立即绑定

选项严格和选项显式做什么?

选项严格和选项显式做什么?

翻阅古今 2019-06-19 16:38:10
选项严格和选项显式做什么?我看到这个帖子:打字…请使用选项严格和明确.。在我作为顾问参与的一个软件开发项目中,到处都会出现大量的错误(…)。原来开发人员不会拼写,会用不正确的拼写声明变量。没有什么大不了的,直到您在给它赋值时使用正确的拼写,…你有明确的选择。哎哟,…“是什么Option Strict和Option Explicit不管怎么说?我已经在谷歌上搜索过了,但没有得到这个想法(因为大部分是VisualBasic,我在做PHP)。
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

Option Explicit意味着必须声明所有变量。看见这里..没有这一点,您就可以通过错误拼写另一个变量名来意外地声明一个新变量。当你试图调试VB程序,找出为什么你的程序不能正常工作的时候,这就是其中之一。在我看来,这甚至不应该是一个选择-它应该永远在。

Option Strict“将隐式数据类型转换限制为仅扩大转换”。看见这里..启用此选项后,您不能意外地将一种数据类型转换为另一种不太精确的数据类型(例如,从Integer转到Byte)。同样,默认情况下应该打开该选项。


查看完整回答
反对 回复 2019-06-19
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

Option StrictOption Explicit帮你抓到电势实际错误在设计时间,而不是您的代码编译和失败在运行时..你应该两个都换On

选项严格和选项显式默认为OFF。打开它们:

选项严格Tools -> Options -> Projects and Solutions -> VB defaults -> Option Strict..把它设置为On.

选项显式Tools -> Options -> Editor -> Require Variable Declaration..勾上它。

选项显式

带着选项显式关闭在使用变量之前,不必声明(Dim)变量:

a = 123 'a is automatically declared as an Integer

当您在一个地方声明一个变量并认为您以后使用它时,这会变得很危险,但是错误地键入它:

Dim counter As Integer = 0'some lines later...countr = 55 'This creates a new variable called countr

或者更糟糕的是,您将一个值赋给您在作用域中,但它不是,您最终会声明一个新变量,其名称相同,但范围不同。

使用大量的代码或长方法,这些都很容易被忽略,您应该始终打开它,以防止此类问题的发生。

选项严格

带着选项严格关闭您可以在没有错误的情况下隐式地将数据类型转换为收缩类型。

Dim d As Double = 999.99Dim s As Single = d 'No error with Option Strict Off

对于这些情况,“严格”选项可作为对开发人员的警告,以确保双值不应超过Single.MaxValue

您还可以将Enum分配给不正确的值,没有错误。以下是这方面的一个实际例子:


变量应该设置为EOpticalCalStates.FAILED(24)实际上,它将国家设定为等于4的值,相当于EOpticalCalStates.ALI_HOR

像这样的东西不容易被发现。

因此,默认情况下,您应该始终有严格的选项。此设置已经被设定为默认版本,但微软决定放弃它,以提高向后兼容性(事后看来,这是个错误-imo)


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 334 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信