前页 后页

记录和映射状态更改

本主题讨论如何在StateMachine中的类下对每个状态设置约束,以定义要记录的状态变化。

州“财产”对话框的此示例适用于名为国会的州;将打开“约束”选项卡,以显示状态如何链接到CXTrain类。

一个国家可以由一个约束或多个约束来定义;在此示例中,国会州有两个约束条件:

约束的值只能比较元素,枚举和字符串类型

CXTrain类具有一个名为int类型的Location的成员和一个名为CString类型的Departing.Name的成员;此约束的含义是,在以下情况下,此状态被评估为True:

  • 存在一个CXTrain类的实例,并且
  • 其成员变量Location的值为0,并且
  • 成员变量Departing.Name的值是Parliament

约束中的运算符

可以在约束上使用两种类型的运算符来定义状态:

  • 逻辑运算符AND和OR可用于组合约束
  • 等价运算符{=和!=}可用于定义约束条件
除非另有说明,否则对一国的所有约束均应进行“与”运算;您可以对它们使用OR操作,因此可以将示例中的约束重写为:

位置= 0或

位置= 1 AND

Departing.Name!=中央

以下是使用等效运算符的一些示例:

Departing.Name!=中心AND

位置!= 1

笔记

  • 字符串周围的引号是可选的;在确定约束的真相时,字符串的比较始终区分大小写

学到更多