Можно комбинировать entry
, during
, и exit
действия, которые выполняют те же задачи в состоянии.
Комбинируя состояния активности, которые выполняют одни и те же задачи, вы устраняете избыточный код. Для примера:
Отдельные действия | Эквивалентные комбинированные действия |
---|---|
entry: y = 0; y=y+1; during: y=y+1; |
entry: y = 0; entry, during: y=y+1; |
en: fcn1(); fcn2(); du: fcn1(); ex: fcn1(); |
en, du, ex: fcn1(); en: fcn2(); |
Объединение состояний активности таким образом создает то же поведение выполнения графика (семантика) и генерирует тот же код, что и эквивалентные отдельные действия.
Объедините набор entry
, during
, и/или exit
действия, которые выполняют ту же задачу, что и разделенный списками , разделенными запятыми в состоянии. Вот синтаксис:
entry, during, exit: task1; task2;...taskN;
Можно также использовать эквивалентные сокращения:
en, du, ex: task1; task2;...taskN;
Можно использовать любую комбинацию из трех действий. Для примера действительны следующие комбинации:
en
, du
:
en
, ex
:
du
, ex
:
en
, du
, ex
:
Можно объединить действия в любом порядке в списке, разделенном запятыми. Для примера, en, du:
дает тот же результат, что и du, en:
.
Вы не можете объединить два или более действия одного типа. Например, следующие комбинации недопустимы:
en
, en
:
ex
, en
, ex
:
du
, du
, ex
:
Если вы комбинируете несколько действий одного типа, вы получаете предупреждение, что график выполняет действие только один раз.
Состояния выполняют объединенные действия в том же порядке, в котором они выполняют отдельные действия:
Entry
действия сначала сверху вниз в том порядке, в котором они появляются в состоянии
During
действия во-вторых, сверху вниз
Exit
действия последними, сверху вниз
Порядок, в котором вы комбинируете действия, не влияет на поведение выполнения состояний. Для примера:
Это состояние... | Выполняет действия в этом порядке... |
---|---|
|
|
|
|
|
|
|
|
Не комбинируйте несколько действий одного типа.
Не создавайте данные, события или сообщения, которые имеют то же имя, что и ключевые слова действий: entry
, en
, during
, du
, exit
, ex
.