以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自定义函数怎么实现参数缺省效果? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89538) |
-- 作者:luodang2050 -- 发布时间:2016/8/24 0:46:00 -- 自定义函数怎么实现参数缺省效果? Functions.Execute(函数名, a, , c) 如上,希望实现跟全局function中option参数效果一致,参数2不设置,直接按缺省值。 |
-- 作者:Hyphen -- 发布时间:2016/8/24 8:43:00 -- Dim a As String If Args.Length > 0 Then a = Args(0) Dim b As String If Args.Length > 1 Then b = Args(1)
|
-- 作者:blackzhu -- 发布时间:2016/8/24 8:58:00 -- 在全局代码中写函数,跟VS写法一模一样 |
-- 作者:luodang2050 -- 发布时间:2016/8/24 9:31:00 -- 以下是引用Hyphen在2016/8/24 8:43:00的发言:
Dim a As String If Args.Length > 0 Then a = Args(0) Dim b As String If Args.Length > 1 Then b = Args(1) 此种写法只能达到 (a,b,[c])的效果,并不能达到(a,,c)的效果
[此贴子已经被作者于2016/8/24 9:32:46编辑过]
|
-- 作者:luodang2050 -- 发布时间:2016/8/24 9:34:00 -- 全局代码实现没问题,问题是希望写在自定义函数里面,这样便于管理,全局代码调试经常重启项目,太不方便了 |
-- 作者:Hyphen -- 发布时间:2016/8/24 9:40:00 -- 道理是一样的啊,option一样不能跳过中间参数的 |
-- 作者:luodang2050 -- 发布时间:2016/8/24 9:42:00 -- option可以跳过,如test(a,,c) 但自定义函数好像不能,如Functions.Execute("test",a,,c)
|
-- 作者:Hyphen -- 发布时间:2016/8/24 9:46:00 -- Functions.Execute("test",a,nothing,c),只能这样 |
-- 作者:Hyphen -- 发布时间:2016/8/24 9:47:00 -- 不然就用object数组作为参数传递 |
-- 作者:luodang2050 -- 发布时间:2016/8/24 9:50:00 -- Functions.Execute("test",a,nothing,c) nothing用法好像还是有点区别,比如参数b缺省要求自动赋值为b2,当为“”时不认定为缺省,仍旧赋值为“”。nothing赋值进去会自动识别为“”,不能实现此种效果,不知有何解决方法
|