Assign a default value to a NIL argument.
Namespace:
XSharp.RT
Assembly:
XSharp.RT (in XSharp.RT.dll) Version: 2.7
Syntax FUNCTION Default(
uVar REF USUAL,
uDefault AS USUAL
) AS VOID
public static void Default(
ref Usual uVar,
Usual uDefault
)
Request Example
View SourceParameters
- uVar
- Type: Usual
The variable to which the default value will be assigned. <uVar> must be passed by reference to the Default() function. - uDefault
- Type: Usual
The default value to assign.
Return Value
Type:
Remarks
Default() assigns <uDefault> to <uVar> if <uVar> is equal to NIL.
It is functionally equivalent to either of these code samples:
1IF uVar = NIL
2 uVar := uDefault
3ENDIF
4IF IsNil(uVar)
5 uVar := uDefault
6ENDIF
Instead of Default(@<uVar>, 0), you could use EnforceNumeric(@<uVar>), which, besides checking <uVar> against NIL, calls the error system if <uVar> is neither numeric nor NIL. You could also use EnforceType() whenever <uDefault> is the empty value (EmptyUsual()) for its data type; this raises an error if <uVar> is not a specific data type.
Therefore, instead of calling Default(@<uVar>, NULL_STRING), you could call EnforceType(@<uVar>, STRING).
Examples
This example uses Default() to check all parameters in a function:
1FUNCTION Start()
2 LOCAL cCA1, cCA2
3 LOCAL nScore
4 LOCAL dDate
5 cCA1 := "CA"
6 cCA2 := "California"
7
8 CheckArgs(cCA1, nScore, cCA2, dDate)
9 RETURN TRUE
10FUNCTION CheckArgs(uOne, uTwo, uThree, uFour)
11 Default(@uOne, "CA-VO")
12
13 Default(@uTwo, 0)
14 Default(@uThree, NULL_STRING)
15
16 Default(@uFour, 0.0.0)
17 RETURN TRUE
Instead of using CheckArgs(), the following example, besides checking for NIL, checks for the correct data types and raises an error if incorrect types are passed:
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
See AlsoReference
Default(Usual, Usual)