Function 命 令
定义一个用户自定义函数
语 法
FUNCTION FunctionName Commands
[RETURN [ eExpression ]] ENDFUNC
参 数 描 述
FunctionName
在 V isual FoxPro 中 函 数 名 最 长 不 超 过 254 个 字 符
如果要区分超过 10 个字符的程序文件名与以相同的 10 十个字符开头的函数 使用引号将程序文件名包围起来或在程序文件名后包含一个扩展名
说 明
许多程序中 都要经常重复运行若干例程 把公用例程定义为单独的函数可以减小程序的大小及其复杂性 也有利于程序的维护
在程序中使用 FUNCTION FunctionName 语句 它指明程序中某个函数的开始 并用名称标识整个函数
FUNCTION FunctionName 后面是组成该函数的 一系列 Visual FoxPro 命令 可以一在函数的任何地方使用 RETURN 从函数返回调用程序或者另一个程序 并且返回一个由用户定义的函数值 如果没有 RETURN 命令 则当函数结束时自动执行隐式 RETURN 命令 如果 RETURN 命令不含返回值 或者如果执行隐式 RETURN 命
令 将以真 .T. 作为返回值
如果发出 DO 命令时包含某个函数名 Visual FoxPro 将按下列顺序搜索该函数
-
Visual
FoxPro 在包含 DO 命令的文件中搜索
-
如果在该文件中找不到此函数
Visual FoxPro 将在打开的过程文件中搜索 过程文件可通过 SET PROCEDURE 命令打开
-
如果在打开的过程文件中也找不到此函数
Visual FoxPro 将在执行链 (execution chain) 的各程序中搜索 首先搜索最近一次执行的程序 然后依次搜索 直到最开始执行的程序
-
如果仍未找到函数 Visual FoxPro 将搜索独立的程序 如果能够找到匹配的程序文件 则执行该程序 否则 Visual FoxPro 产生错误信息
在 DO 命令中 包含 IN 子句可以执行指定文件中的函数
默认情况下 参数以值传递方式传递给函数 有关以引用传递方式向函数传递参数的
详细内容 请参阅 SET UDFPARMS 最多可以向函数传递 27 个参数 这些参数可以传递给包含有 PARAMETERS 或者 LPARAMETERS 语句的函数 或者通过在函数姓名后的参数列表来传递 参数列表被包含在一个圆括号中 每一个参数用逗号隔开 示 例
此 示例 创建了一个名为 Hello 的自定义对象并且添加了一个名为 SayHello .的函数方法 SayHello 方法返回字符串 Hello World 该字符串使用 MESSAG EBOX 函数显示
注 意 类定义代码放置在实例化对象的程序代码之后
Local oHello oHello=CREATEOBJECT("Hello")
=MESSAGEBOX(oHello.SayHello(),48) RELEASE oHello
- Class definition code
DEFINE CLASS Hello AS CUSTOM
FUNCTION SayHello RETURN "Hello World"
ENDFUNC ENDDEFINE
请 参 阅
LPARAMETERS, PARAMETERS, PARAMETERS(), PRIVATE, PROCEDURE, PUBLIC, RETURN, SET PROCEDURE, SET UDFPARMS