Replace the functor with a lambda in the C++ code, then use an equivalent lambda in the C# code.
Edit: Your C++ code from the comments modified to use lambdas:
void Player::initializeActions() {
const float playerSpeed = 200.f;
mActionBinding[MoveLeft].action =
derivedAction<Aircraft>([=](Aircraft& a, Time) { a.accelerate(Vector2f(-playerSpeed, 0.f)); });
...
}
The equivalent C# code would look something like:
mActionBinding[MoveLeft].action =
new derivedAction<Aircraft>((Aircraft a, Time t) => a.accelerate(new Vector2f(-playerSpeed, 0.f)));