Можно объединить 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
действия в последний раз, сверху донизу
Порядок, в котором вы комбинируете действия, не влияет на поведение при выполнении состояния. Например:
Совместные действия | Порядок Exectution |
---|---|
|
|
|
|
|
|
|
|
Не комбинируйте несколько действий того же типа.
Не создавайте данные, события или сообщения, которые имеют то же имя как ключевые слова действия: entry
, en
, during
, du
выход
, ex
.