我手里有一个程序,开头声明了许多的变量:
Option Explicit
Const Kp = 0.728, Kip = 0.00565, Kdp = 1#    'G20M,222,50.49-49.99,20.42
Const r = 50#                      '温度设定值
Const Ts = 5000                    '采样周期 Ts=5S
Private Temp, y(3), u(52), e(3), Max, Min As Single
Private W As Long
Private MaxTemp, MaxTime, t, Tr, DataForm As Integer
Private x0, x1, y0, y1 As Single
Private mydate, mytime As Date
Private k, flag As Integer
我把Option Explicit删掉也能运行,请问我可不可以删掉啊?

解决方案 »

  1.   

    可以啊,不过个人认为不用Option Explicit是个不好的习惯...
      

  2.   

    而且你代码中这样的声明变量
    Private Temp, y(3), u(52), e(3), Max, Min As Single
    在VB6中也是不规范的,在NET中以上所有变量是可以声明为Single,但在VB6中只有Min是Single...
      

  3.   

    习惯问题,有未声明而直接用的变量时才能看出Option Explicit的用处可以不用每次都写,在“工具”-“选项”中选中显示声明就可以了
      

  4.   

    偶从不用Option Explicit嘎嘎
      

  5.   

    option explicit是用于变量声明的,最好加上 ,这是一个好的编写习惯。假如没有option explicit语句你你在程序中 写错了一个一个变量,如:本来你定义了dim sa as single而在应用时  确写成set saa =new map1.layers就会把saa当成一个新变量,而不是你定义的sa
      

  6.   

    其实最要拿的应该是,本应有一个:const SOME_CONST_VALUE = &H00000001&结果给忘了。如果不使用option explicit
    那么SOME_CONST_VALUE就是empty
    然后当你使用
    select case Some_Result_Value
      case SOME_CONST_VALUE
          DoSomeThing
      case else
          DoOtherThings
    end select很有可能本来Some_Result_Value的值是&H00000001&,本应该是DoSomeThing,结果永远都是DoOtherThings.
      

  7.   

    Option Explicit最好不删,理由是:
    (1)显式声明是好习惯;
    (2)防出错,对于大型程序特别明显;
    (3)可以减少资源的占用,一个Integer肯定比 Variant 节省资源的占用
      

  8.   

    我也是这样认为的,用Option Explicit会检查你的程序,要养成好习惯才得。
      

  9.   

    摘自MSDN
    Option Explicit 语句
    在模块级别中使用,强制显式声明模块中的所有变量。
    语法
    Option Explicit
    说明
    如果使用,Option Explicit 语句必须写在模块的所有过程之前。
    如果模块中使用了 Option Explicit,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。如果使用了未声明的变量名在编译时间会出现错误。
    如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是 Variant 类型的。
    注意 使用 Option Explicit 可以避免在键入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。

    LZ,规范使用Option Explicit 语句可以降低系统开销,避免错误。
    强烈建议LZ养成良好的编成习惯。