注意 | 此命令在 Core 和 Vulcan 方言中不可用。 |
创建私有变量,接收传递的值或引用。
PARAMETERS <idParameterList>
PARAMETERS <Parameter1> [ AS <Type> [ OF <ClassLibrary> ] ] [, <Parameter2> [ AS <Type> [ OF <ClassLibrary> ] ] ] // 仅用于 FoxPro 方言
<idParameterList> | 一个或多个参数变量,用逗号分隔。这些变量用于接收调用例程时传递的参数。这些变量将是动态内存变量 |
<Type> & <ClassLibrary> | 编译器可以识别 FoxPro 方言中的 AS <Type> 和 AS <Type> of <Classlibrary> 子句。 |
当 PARAMETERS 语句执行时,参数列表中的所有变量都会被创建为私有变量,所有同名的公有或私有变量都会被隐藏,直到当前过程或函数结束。PARAMETERS 语句是一条可执行语句,因此可以出现在过程或函数的任何位置。
如果参数作为过程或函数声明语句的一部分,也可以声明为局部变量(见示例)。以这种方式指定的参数称为形参(形式参数)。需要注意的是,在过程或函数定义中不能同时指定形参和 PARAMETERS 语句。
否则会导致编译器出错。
接收变量的数量不必与调用例程传递的参数数量一致。如果指定的参数多于参数,多余的参数将被忽略。如果指定的参数少于参数,多余的参数将以 NIL 值创建。如果跳过一个参数,相应的参数将被初始化为 NIL。
PCount() 函数返回参数列表中最后一个参数的位置。这与传递的参数数量不同,因为它包括跳过的参数。
该函数接收通过 PARAMETERS 语句传递给私有参数的值:
FUNCTION MyFunc()
PARAMETERS cOne, cTwo, cThree
? cOne, cTwo, cThree
下一个示例与此类似,但通过在 FUNCTION 声明中声明参数变量,接收传入局部变量的值:
FUNCTION MyFunc(cOne, cTwo, cThree)
? cOne, cTwo, cThree