首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径递归应该发生在类或表示层中吗?

路径递归应该发生在类或表示层中吗?
EN

Stack Overflow用户
提问于 2008-10-24 15:02:24
回答 3查看 228关注 0票数 2

我有一个带有输入文本框、按钮和多行输出文本框的WinForms应用程序。在文本框中输入根路径。单击按钮调用函数,递归检查所有子目录,以获得适当的目录命名验证检查。结果被输出到多行文本框中。

如果递归工作是在一个单独的类中完成的,我有两个选项:

  1. 跟踪类属性中的不正确目录(例如ArrayList),完成后返回ArrayList,并用所有结果更新输出文本框。
  2. 传入输出文本框ByRef,并更新/刷新每个不正确的目录。即使1和2是单线程的,有2,我至少会让每个目录更新我的结果。

如果递归工作是在表示层中完成的,并且验证是在一个单独的类中完成的,那么我可以使用多线程。

哪种方法更干净?

EN

回答 3

Stack Overflow用户

发布于 2008-10-24 15:15:43

您不需要通过TextBox ByRef。它已经是一个引用对象了。只有当您计划为引用分配一个不同的或新的ByRef时,传递它才会有效果。

如果要在一个单独的类中完成这项工作,似乎只需将TextBox的内容作为字符串传递,并以字符串或一组字符串(数组或List<string>等)的形式返回结果。这比传递TextBox要好,以防有一天您决定使用另一种控件来存储这些信息。

票数 2
EN

Stack Overflow用户

发布于 2008-10-24 15:16:57

我会建议一些接近选项1的东西,我会有一个方法,把根目录作为输入,并返回一个目录的列表,这些目录是“坏的”。此外,我将在后台线程上调用该方法,以便在执行操作时不挂起UI。添加进度条或某种等待指示符,以便用户知道操作正在进行。

将textbox传递到该方法将不允许您将该方法用于其他任何事情。为了代码的重用(如果这对您来说很重要),我认为让方法返回一个列表并让回调方法知道如何显示数据是比较干净的。

票数 2
EN

Stack Overflow用户

发布于 2008-10-24 17:32:53

不确定这是否是跟进原问题的地方

那么,可以肯定地说,递归业务层函数不能在每次递归迭代中更新表示级控件吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/233916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档