你不再 调试时 运行 还会return吗??
解决方案 »
- wpf 选项卡带关闭按钮的TabControl
- 试图对无法访问的主机执行套接字操作
- Resource存储
- [C# - WCF] 为什么用 NET.TCP 通道传输大文件会导致 CommunicationObjectFaultedException ?!
- C#初学资料 下载
- 从SAP获得的DataTabel如果一次性把数据导入SQL server DB 送分!!!!!!!!
- Socket多线程问题。。
- 急啊!兄弟们!BS网页在服务器端创建一个代$符号的共享文件夹!
- 大家都玩过WOW,研究过暴雪的官方网站没。有兴趣的一起来分析分析。
- DropDownList取值问题
- JS滚动
- 急求vs2010与vs2005的Winform .net程序兼容吗
我试了,还是不行。程序一执行到最后的括弧,就返回返回去执行if块中的
SearchForTopParentDepartment(departmentName.ParentDepartment, abc);也返回值,但是不是我要的值。return abc;的值是我要的。
实在是不知道怎么做,我一return,就调用递归函数。
哪位能写一下我的需求,我学习一下。
我的需求是找到一个部门的最高级的部门。比如,a的上级是b,b的上级是c.c没有上级了。下面的函数是我写的,有错误。函数的第一个参数是部门的名字,比如是部门a, 第二个参数abc是函数要返回的值,在我的例子中也就是部门a的最高级的部门,部门c。再比如函数的第一个参数如果是部门c,那么就执行if块内的代码,由于c没有上级部门,就直接返回c的名字。
请问诸位应该怎么写?请教了。
private String SearchForTopParentDepartment(Department departmentName, String abc)
{
// string i = null;
if (departmentName.ParentDepartment == null)
{
return departmentName.DepartmentName ;
}
else
{
abc = departmentName.ParentDepartment.DepartmentName; SearchForTopParentDepartment(departmentName.ParentDepartment, abc);
// if }
比如,类这样定义
class Department
{
string name;
Department parentDepartment;
}
在判断的地方:
Department tDepart=你的Department;
while(null!=tDepart)
{
tDepart=tDepart,parentDepartment;
}
// 到此,就找到了最高层的了====================================
还可以采用栈的方式,直接找栈顶就可以了。建议学学算法语言、数据结构、软件工程等,不一定要都懂,但要有个概念。软件不仅仅是编码这么简单,啰嗦甚多,仅供参考。
1. 代码中无论什么情况下 abc 都会被重新赋值,其实是一个临时变量的用法,没必要作为参数传入
2. SearchForTopParentDepartment 是返回最高部门,那么 Line 10 中调用函数返回的结果到哪里去了呢?
3. String, string 最好统一一下吧private string SearchForTopParentDepartment(Department departmentName)
{
if (departmentName.ParentDepartment != null)
{
return SearchForTopParentDepartment(departmentName.ParentDepartment);
}
else
{
return departmentName.DepartmentName;
}
}