-vo10选项使IIF运算符的运行方式与 Visual Objects (方言)对象兼容
-vo10[+|-]
+ | - | 指定 + 或只指定 -vo10,会使 IIF 运算符的行为与 Visual Objects 中的行为相同。 |
如果 IIF 运算符中的 true 和 false 表达式不相同,或者其中一个表达式无法隐式转换为另一个表达式的类型,编译器将引发错误。
Visual Objects 允许这样做,它会将两个表达式隐式转换为 USUAL,从而使 IIF 表达式也返回 USUAL。这既不安全也不高效,但最初用 Visual Objects 编写的代码可能依赖于这种行为,如果不使用 -vo10,运行时可能会出错。
LOCAL x as LOGIC
x := TRUE
? IIF( x, 1, "Sunday")
当您使用 -vo10 编译器选项时,编译器会将其转换为:
? IIF( x, (USUAL)1, (USUAL) "Sunday") // 针对 VO 和 Vulcan 方言
或
? IIF( x, (OBJECT)1, (OBJECT) "Sunday") // 针对 Core 方言
要在 Visual Studio 开发环境中设置该编译器选项,请执行以下操作
1.打开项目的 "属性"页面
2.点击 Dialect 选项卡
3.更改值
4.查看属性页