There are two actions interfaces, and the one that you choose is dictated by the
class that was inherited from.
public interface IAction<TTarget> ...
public interface IAction<TTarget, TReturnType> ...
Both action interfaces have a single method, with a different signature.
void Execute(TTarget target);
TReturnType Execute(TTarget target);
The execute method will be called as soon as the When
method is called from the