以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  递归函数如何判断object is null?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138438)

--  作者:lur320
--  发布时间:2019/7/31 11:32:00
--  递归函数如何判断object is null?
在制作treenode时,想制作一个类似教材里面《递归函数使用实例》的方法来做一个BOM表。

教材里面在执行自定义程序的时候,有传递一个treenode给程序的args(1)。这样是treeview里面最底层就是这个“全部”的节点。

而我如果不想传递一个基础节点给递归函数,让函数自己判断object是否是空,如果是空,自动在底层加node,否则就是在参数的node下面加。


我试过 Dim nd As WinForm.TreeNode=args(1)
if nd.name="" then
.....

当传递一个空的args给程序后,nd.name会报错。
请问如何判断object 是空?


--  作者:有点蓝
--  发布时间:2019/7/31 11:48:00
--  
Dim nd As WinForm.TreeNode=args(1)
if nd is nothing then
msgbox("空")
end if

--  作者:lur320
--  发布时间:2019/8/7 11:38:00
--  
我这样做报错了。
Exception has been thrown by the target of an invocation.
Index was outside the bounds of the array.


我的自定义程序是:
Dim lbl As WinForm.NumericComboBox
Dim lblname As WinForm.TreeNode =args(0)
Dim tv As WinForm.TreeView =args(1)
If tv IsNot Nothing Then
   。。。。。

    Return Nothing
Else
MessageBox.Show(1)  这段代码都不能执行到。
    Forms("new_MO").RemoveControl(lblname.name)
    Return Nothing

End If

--  作者:lur320
--  发布时间:2019/8/7 11:40:00
--  
OK了,
外面的引用要这样写。Functions.Execute("addlbl",e.node,Nothing)才可以