《WF编程》系列之23 - 基本活动:IfElseActivity & WhileActivity & SequenceActivity
2007-07-23 09:27
393 查看
4.1.2 IfElseActivity
IfElse活动和C#中的if…else语句很像,它的内部是一个或更多的IfElseBranch(分支)活动,每个分支活动都有一个Condition(条件)属性.除最后一个分支之外,其它分支的Condition属性都是必须设置的.IfElse活动从左向右来判断子分支的条件并执行第一个满足条件的分支.如果所有分支的条件都不满足,就都不会被执行,在这种情况下,如果最后一个分支没有设置条件,它将会被执行.
我们可以通过右键单击IfElseActivity并选择添加分支(AddBranch)来添加一个分支,也可以通过右键单击分支并选择删除(Delete)来删除分支删除一个分支.
分支的Condition属性可以设置为声明性规则条件(Declarative Rule Condition,设计器会将其以XML格式保存到一个外部的.rules文件中),也可以设置为代码条件(Code Condition,即一个事件处理程序).如果我们设置Condition为声明性规则,我们可以从属性面板启动规则条件编辑器(Rule Condition Editor)然后输入相应的表达式.假如工作流有一个整型的属性Sales,我们可以输入这样的表达式:
This.Sales > 10000
如果我们设置Condition为代码条件,那么我们可以编写这样的代码:
private void checkSalesAmount(object sender, ConditionalEventArgs e)
{
e.Result = Sales > 10000;
}
IfElse活动会触发事件来判断条件是否满足.我们可以将判断条件的结果赋给事件参数(e)的Result属性.另外,在属性面板,我们可以指定代码条件的名称(例如checkSalesAmount).
4.1.3 WhileActivity
和IfElse活动相似的是While活动也有一个Condition属性,而且同样可以被设置为声明性规则条件或代码条件. While活动会在每次循环之前判断其条件是否满足.如果满足,WhileActivity将一直运行.和IfElse不同的是,WhileActivity只可以拥有一个子活动.当然,这个限制并不会妨碍我们在循环内使用多个活动,请接着往下看.
4.1.4 SequenceActivity
Sequence活动是一个复合活动,也就是说Sequence活动可以管理一个或多个子活动.这些子活动轮流执行,直到最后一个子活动完成.我们知道WhileActivity只允许包含一个子活动,我们就可以把Sequence活动作为其子活动,然后在Sequence活动中添加更多的子活动.While活动每循环一次,Sequence的所有子活动都会被执行.关于Sequence活动的其它细节还可以查看《WF编程》系列之15 - 顺序工作流与SequenceActivity 这篇随笔. |
相关文章推荐
- 《WF编程》系列之23 - 基本活动:IfElseActivity & WhileActivity & SequenceActivity
- 《WF编程》系列之24 - 基本活动:SuspendActivity & TerminateActivity & ThrowActivity
- 《WF编程》系列之26 - 基本活动:ParallelActivity & DelayActivity & ListenActivity
- 《WF编程》系列之27 - 基本活动:EventHandlingScopeActivity & SynchronizationScopeActivity & ReplicatorActivity
- 《WF编程》系列之24 - 基本活动:SuspendActivity & TerminateActivity & ThrowActivity
- 《WF编程》系列之25 - 基本活动:InvokeWorkflowActivity
- 《WF编程》系列之27 - 基本活动:EventHandlingScopeActivity & SynchronizationScopeActivity & ReplicatorActivity
- 《WF编程》系列之26 - 基本活动:ParallelActivity & DelayActivity & ListenActivity
- 《WF编程》系列之25 - 基本活动:InvokeWorkflowActivity 4.1.8 InvokeWorkflowActivity
- 每天学习一算法系列(12) (求1+2+…+n,不能使用乘除法,for、while、if 、else、switch、case 等关键字以及条件判断语句)
- 《WF编程》系列之29 - 本地通信事件:HandleExternalEventActivity & 活动生成器
- 《WF编程》系列之33 - 基本活动:Web Services 4.6 Web Services
- ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else & switch & while & for
- 《WF编程》系列之34 - 基本活动:状态活动
- 《WF编程》系列之33 - 基本活动:Web Services
- 《WF编程》系列之31 - 基本活动:事务(Transactions)与补偿(Compensation)
- 《WF编程》系列之29 - 本地通信事件:HandleExternalEventActivity & 活动生成器 4.2.2 HandleExternalEventActivity
- 《WF编程》系列之22 - 基本活动:CodeActivity
- ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else & switch & while & for
- 《WF编程》系列之32 - 基本活动:条件与规则