Question regarding delegates and events

I have been recently learning about delegates & events. I would like to know performance wise if there is another way to do this. Or should I just write events for every single command like so:

public delegate void IndividualUnitAttackingDelegate(GlobalAISensor aiSensor);
public static event IndividualUnitAttackingDelegate MoveEnemyUnitToAttack1;
public static event IndividualUnitAttackingDelegate MoveEnemyUnitToAttack2;
public static event IndividualUnitAttackingDelegate MoveEnemyUnitToAttack3;

public delegate void IndividualDefendingUnitDelegate(Vector3 destination);
public static event IndividualDefendingUnitDelegate MoveEnemyUnitToDefend1;
public static event IndividualDefendingUnitDelegate MoveEnemyUnitToDefend2;
public static event IndividualDefendingUnitDelegate MoveEnemyUnitToDefend3;

here is how it’s being used in this main event script if for whatever reason you need that information:

void DetermineTargetDestination()
        if (Enemy1DefendPlanet)
        if (Enemy2DefendPlanet)
        if (Enemy3DefendPlanet)
        if (!Enemy1DefendPlanet && aiSensor1 != null && MoveEnemyUnitToAttack1 != null)
        if (!Enemy2DefendPlanet && aiSensor2 != null && MoveEnemyUnitToAttack2 != null)
        if (!Enemy3DefendPlanet && aiSensor3 != null && MoveEnemyUnitToAttack3 != null)
        Enemy1DefendPlanet = false;
        Enemy2DefendPlanet = false;
        Enemy3DefendPlanet = false;

Why not pass the command as secondary param?