parentid elementid
0 1
1 2
1 3
2,3是1的子节点,1是顶级节点,顶级节点的parentid=0
private int GetTopId(int elementId)
{
try
{
int r = 0;
DataTable dt = ElementData.GetData(elementId);
if (dt.Rows[0][0].ToString() != "0")
{
GetTopId(int.Parse(dt.Rows[0][0].ToString()));
}
else
{
r = int.Parse(dt.Rows[0][1].ToString());
}
return r;
}
catch (Exception e)
{
throw e;
}
}
--------------------------------------------
执行方法为GetTopId(2)GetData方法会返回两个字段的值,判断如果返回的parentid=0则是顶级节点return这条记录的elementid
但是我现在执行return后程序又再次执行了一次GetTopId(2),最后返回了一个0
我实在是想不明白为什么在return后还会再执行一次
0 1
1 2
1 3
2,3是1的子节点,1是顶级节点,顶级节点的parentid=0
private int GetTopId(int elementId)
{
try
{
int r = 0;
DataTable dt = ElementData.GetData(elementId);
if (dt.Rows[0][0].ToString() != "0")
{
GetTopId(int.Parse(dt.Rows[0][0].ToString()));
}
else
{
r = int.Parse(dt.Rows[0][1].ToString());
}
return r;
}
catch (Exception e)
{
throw e;
}
}
--------------------------------------------
执行方法为GetTopId(2)GetData方法会返回两个字段的值,判断如果返回的parentid=0则是顶级节点return这条记录的elementid
但是我现在执行return后程序又再次执行了一次GetTopId(2),最后返回了一个0
我实在是想不明白为什么在return后还会再执行一次
GetTopId(int.Parse(dt.Rows[0][0].ToString()));
===>
return GetTopId(int.Parse(dt.Rows[0][0].ToString()));
这个return是里面那层GetTopId(int.Parse(dt.Rows[0][0].ToString()))的返回值吧...