Show/Hide Toolbars

XSharp

Navigation: X# 文档 > X# 编译器选项 > 按字母顺序排列的 X# 编译器选项

-vo9 处理缺少或不正确的返回语句问题。您需要确保每个函数都有正确的返回语句,以便返回预期的结果。

Scroll Prev Top Next More

 

当函数或方法没有任何 RETURN 语句时,-vo9 选项可防止编译器引发错误 XS0161。它还能解决返回值不正确的问题。

语法

-vo9[+|-]

参数

+ | - 指定 + 或 -vo9,可以让没有任何 RETURN 语句的函数和方法在编译时不出错。

备注

Visual Objects 允许返回类型不是 VOID 的函数和方法省略 RETURN 语句。任何此类函数或方法的返回值将始终是返回类型的默认值。

 

这在 X# 中是非法的:除非返回类型是 VOID,否则所有函数和方法都必须显式地返回一个值。不过,这可能会妨碍最初用 Visual Objects 编写的代码在 X# 中编译。

 

如果启用 -vo9,任何没有任何 RETURN 语句的非虚函数或方法都将引发警告 XS9025,而不是错误 XS0106。如果需要,可以禁用该警告,但强烈建议修复相关代码。 如果从未使用返回值,则键入函数或方法 AS VOID。否则,添加一个带有适当返回值的 RETURN 语句。

该编译器选项也会检查有无返回值的返回语句的方法/函数。在这种情况下,将显示警告 XS9026。

该编译器选项的最后一项检查是有返回值但不返回任何内容的方法。如果发现这种情况,就会显示警告 XS9032。

 

要在 Visual Studio 开发环境中设置该编译器选项,请执行以下操作

 

1.打开项目的 "属性"页面

2.点击 Dialect 选项卡

3.更改值

4.查看属性页

示例

FUNCTION x( y )
? y
 
METHOD x( y AS INT ) AS INT
? y

在第一个示例中,没有指定返回类型,因此默认为 USUAL,由于没有 RETURN 语句,函数在 Visual Objects 中将始终返回 NIL(USUAL 的默认值)。在第二个示例中,由于没有 RETURN 语句,该方法将始终在 Visual Objects 中返回 0(INT 的默认值)。