欢迎来到天天文库
浏览记录
ID:57691116
大小:15.00 KB
页数:3页
时间:2020-09-01
《VFP参数传递机制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、参数传递机制--SETUDFPARMS(VFP) 函数或过程可以接收参数,参数可以是变量或数组元素。按参数传递的方式不同可以分为:按值传递和按引用传递。按值传递只是将值传递给函数或过程,所有对参数值的操作都不会影响保存参数值变量的原值;按引用传递则是将保存参数值变量的地址传递给函数或过程,函数或过程中所有对参数值的操作实际都是对原变量的操作,变量值也将随之变化。默认情况下,VisualFoxPro按值进行参数传递。1.按引用传递参数要按引用传递参数可以通过以下两种方式进行:(1)使用SETUDFPARMS命令的TOREFERENCE子句在调用自定义函数或过程前,可以使用SETUDFPAR
2、MS命令指定参数是按值传递还是按引用传递,其语法结构如下:SETUDFPARMSTOVALUE
3、REFERENCETOVALUE表示按值传递参数,在这种情况下,自定义函数或过程可以修改作为参数的变量值,但是主程序中的变量原值不会改变。TOREFERENCE表示按引用传递,在这种情况下,将把保存参数值变量的地址传递给自定义函数或过程,自定义函数或过程可以修改作为参数的变量值,所做修改也随之反映到主程序中的变量上。下列代码演示了按值传递和按引用传递参数值的区别。nNumber=20SETUDFPARMSTOVALUEListVarValue(nNumber)?"nNumber=",nNumbe
4、r &&按值传递,nNumber的值应当保持不变,为20SETUDFPARMSTOREFERENCEListVarValue(nNumber)?"nNumber=",nNumber &&按引用传递,nNumber的值将被ListVarValue过程变为9PROCEDUREListVarValue LPARAMETERStnNumber &&接收参数值 tnNumber=9ENDPROC须注意的是,如果使用DOProcedureNameWITHParameterList命令来调用过程,无论SETUDFPARMS如何设置,参数都将按引用传递。(2)使用@标记参数无论SE
5、TUDFPARMS如何设置,如果在函数括号中参数变量的前面加上@标记,表示强制按引用传递,参考下列代码:nNumber=20SETUDFPARMSTOVALUEListVarValue(@nNumber) &&强制按引用传递?"按引用传递,nNumber的值将被ListVarValue过程改变:",nNumber &&nNumber被变为9PROCEDUREListVarValue LPARAMETERStnNumber &&接收参数值 tnNumber=9ENDPROC2.按值传递按值传递可以按下面的两种方式进行:l 在调用用户自定义函数前,使用SETUDFPARM
6、S命令的TOVALUE子句。l 将变量或数组放在函数名后的括号中,表示强制按值传递。参考下列代码:nNumber=20SETUDFPARMSTOVALUEListVarValue((nNumber)) &&强制按值传递?"nNumber=",nNumber &&强制按值传递,nNumber的值应当保持不变,为20SETUDFPARMSTOREFERENCEListVarValue((nNumber))?"nNumber=",nNumber &&强制按值传递,nNumber的值应当保持不变,仍为20PROCEDUREListVarValue LPARAMETERStnNum
7、ber &&接收参数值 tnNumber=9ENDPROC从上面代码可以看出,当强制按值传递时,SETUDFPARMS命令设置将无效。
此文档下载收益归作者所有