它真正做的只是让我不得不对每个变量进行调暗,如果我忘记调暗变量,它就会编译得很糟糕。
使用它有什么优点吗?
是的,它将防止某些类型的错误。最明显的情况之一是,如果您打错字并错误地拼写变量名,它将标记错误输入的变量不存在。
如果不使用 Option Explicit 语句,则所有未声明的变量都是 Object 类型。
参考: http: //msdn.microsoft.com/en-us/library/y9341s4f (v=vs.80).aspx
想想这将如何影响 GC,所有应该存储在线程堆栈上的值类型现在都存储在托管堆上并接受垃圾回收。这听起来可能不是很大,但 GC 必须检查值类型是否具有根引用以及所有引用类型。这将对 GC 产生重大的性能影响,因为您的所有值类型都将被提升到 0、1、2 代,而不仅仅是引用类型。
我认为必须调暗每个变量作为大专业人士。我无法告诉你有多少次我试图找出一个错误来发现我错误地拼写了一个如果打开“选项显式”就会找到的变量。
PS 始终使用 Option Explicit。