我需要制作一个包含22张主图像和13张次要图像的应用程序。
流程描述:我看到image1,有一个带有两个选项的清单(这些是条件)。如果选中条件1则转到图像23,然后如果选中选项2转到图像24然后转到图像2,如果未检查则转到图像2。
这是一个举例说明的流程:
在某些情况下可能有两个条件或三个甚至只有一个条件。
我需要在C#中执行此操作。我怎样才能在图像之间跳转? 35个面板玩Visible选项? MultiViews?还有其他控制吗? 如果没有这么多ifs elses,有没有更好的方法呢?请给我一些指导..
答案 0 :(得分:2)
nope只需使用if / else if / else或case语句......
我个人认为没有一种“完美”的方式来实现这样的事情。
答案 1 :(得分:1)
你应该了解有限状态机;一旦掌握了理论,你就可以轻松地推出自己的状态机。
您可以将状态之间的转换存储在文件中,以便最大程度地方便配置。
答案 2 :(得分:0)
我不知道这是否有帮助,但似乎Image3或Image4的“空”条件等同于非空条件true
。
这意味着您在条件和值之间存在映射。您可以使用它将这部分代码提取到一个方法,该方法将条件(或仅true
作为空条件)和图像名称,并在满足条件时使用名称执行某些操作。
答案 3 :(得分:0)
您需要阅读设计模式。而不是4"我推荐Eric Freeman和Elisabeth Freeman撰写的非常出色的书Head First Design Patterns。
您感兴趣的特定模式是State Pattern。这是一个类图
简而言之,您有一个上下文可以做一些有用的事情。它的外部接口完全取决于您的需求。每个上下文实例都有许多不同的内部状态。将其编码为一堆嵌套的if / then / else / switch / lookup等会变得复杂并使维护和调试变得困难。所以......
您可以创建一个表示上下文状态的抽象类型。该抽象 state 类的每个具体子类型都是不同的状态,并实现该状态所需的行为。
您的上下文有一个内部成员引用其当前状态,并以初始状态初始化。
具体_state实例的职责之一是为上下文提供下一个状态,它应根据所采取的操作进行转换。
通常情况下,州没有自己的任何成员,保存对上下文的引用。它只是提供行为。如果它可以访问上下文的内部,那么它会有所帮助,但是你选择这样做。
状态模式与Strategy Pattern类似(但不同)。
这里有一些链接可以帮助您入门。