点击或拖拽改变大小

Functions.Default 方法

X#
为 NIL 参数分配默认值。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION Default(
	uVar REF USUAL,
	uDefault AS USUAL
) AS VOID
查看代码

参数

uVar
类型:__Usual
将被分配默认值的变量。uVar 必须通过引用传递给 Default() 函数。
uDefault
类型:__Usual
要分配的默认值。

返回值

类型:
备注
如果 uVar 等于 NIL,Default() 将 uDefault 分配给 uVar
它在功能上等同于以下任一代码示例:
X#
1IF uVar = NIL
2    uVar := uDefault
3ENDIF
4IF IsNil(uVar)
5    uVar := uDefault
6ENDIF
与其使用 Default(@uVar, 0),您可以使用 EnforceNumeric(@uVar),它除了检查 uVar 是否为 NIL 外,还会在 uVar 既不是数字也不是 NIL 时调用错误系统。当 uDefault 是其数据类型的空值(EmptyUsual())时,您也可以使用 EnforceType();如果 uVar 不是特定数据类型,这会引发错误。
因此,您可以调用 EnforceType(@uVar, STRING),而不是调用 Default(@uVar, NULL_STRING)。
示例
此示例使用 Default() 检查函数中的所有参数:
X#
 1FUNCTION Start()
 2    LOCAL cCA1, cCA2
 3    LOCAL nScore
 4    LOCAL dDate
 5    cCA1 := "CA"
 6    cCA2 := "California"
 7    // nScore 和 dDate 为 NIL
 8    CheckArgs(cCA1, nScore, cCA2, dDate)
 9    RETURN TRUE
10FUNCTION CheckArgs(uOne, uTwo, uThree, uFour)
11    Default(@uOne, "CA-VO")
12    // NIL 参数被分配一个值:
13    Default(@uTwo, 0)
14    Default(@uThree, NULL_STRING)
15    // NIL 参数被分配一个值:
16    Default(@uFour, 0.0.0)
17    RETURN TRUE
下面的示例不使用 CheckArgs(),除了检查 NIL 外,还检查正确的数据类型,如果传递了不正确的类型则会引发错误:
X#
1FUNCTION CheckArgs2(uOne, uTwo, uThree, uFour)
2    Default(@uOne, "CA-VO")
3    EnforceNumeric(@uTwo)
4    EnforceType(@uThree, STRING)
5    EnforceType(@uFour, DATE)
6    RETURN TRUE
参见