.. */ }
produces an action label in the form Foo(x). The action is atomic.
??? If the method has outputs, then the default vocabulary is a start action (whose
arguments are the inputs) and a finish action (whose arguments are the outputs). In
that case, the default action names are methodName Start and methodName Finish,
respectively. For example,
[Action]
static bool Foo(int x, byref string s, out int val) { /* ... */ }
produces in start action label with the input parameters
Foo_Start(x, s)
and a finish action label whose arguments are the outputs with result first and
the remaining out or byref arguments in the order they appear in the target
method.
Foo_Finish(result, s, val)
Note that that byref argument s appears in both input and output labels.
If a name (without parentheses) is given in the action attribute, then the same
default behavior occurs as above, except that the user-provided action name is used
instead of the method name. For example,
[Action("Bar")]
static bool Foo(int x, byref string s, out int val) { /* ... */ }
produces labels Bar Start(x, s) and Bar Finish(result, s, val).
The symbol this is used for the implicit first argument of an instance method. By
default, the parameter this appears as the first input action parameter for an action
whose target method is instance-based.
The symbol result is used to denote the return value of the method.
Pages:
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373