策略建议:使用字典对象在表单之间移动

本文关键字:对象 表单 之间 移动 字典 策略 | 更新日期: 2023-09-27 18:33:22

我正在使用Windows Forms用c#编写游戏。 我选择这是一项有趣的任务,同时帮助我学习。 我有一个 8 种形式的游戏工作流程。 设计和编码在每个表单中都进展顺利。 我有原型模型可以处理我想做的一切。

然而,游戏工作流程是循环的。随着游戏的进行,用户将被转移一轮又一轮的 8 种表格。 我想使用某种捆绑包在表单之间传递我需要的东西。 我很高兴阅读文档并弄清楚如何做到这一点 - 也许使用字典对象。

我的问题更多的是关于策略,我想到了两个可能的选择。 请您推荐在工作流程中从一个表单移动到另一个表单时我应该调查的更可取的路径(甚至是第三个改进的选项(吗? 我在这里使用了nextForm和previousForm作为术语来指代用户即将离开的表单和他们将要使用的表单。

  1. 创建 nextForm 类的新实例,并将所需的对象作为捆绑包在窗体之间传递。 杀死以前的形式。 将在需要时重新创建实例。 我认为这是一个"青蛙"的类比,当青蛙从一根原木(然后下沉(跳到新创建的原木上,在两根原木之间携带一个装有他需要的任何东西的公文包。

  2. 创建我需要的所有 8 个表单的单个实例。 在表单之间传输用户(再次使用所需的对象包(,但使用 previousForm.Hide(( 和 nextForm.Show(( 方法。 在这里,我将使用来自previousForm的新数据刷新现有的nextForm实例,并使其在使nextForm消失的同时使其可见,直到再次需要它。

策略建议:使用字典对象在表单之间移动

选项

1 比选项 2 更好。如果您不需要保留以前的表单状态,那么我的建议是不遵循选项 1。因为它会不必要地消耗内存。更多的用户可能没有来到previousForm,所以为什么它需要在后台保持隐藏。