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)
            MoveEnemyUnitToDefend1(defendPosition1);
        if (Enemy2DefendPlanet)
            MoveEnemyUnitToDefend2(defendPosition2);
        if (Enemy3DefendPlanet)
            MoveEnemyUnitToDefend3(defendPosition3);
        if (!Enemy1DefendPlanet && aiSensor1 != null && MoveEnemyUnitToAttack1 != null)
            MoveEnemyUnitToAttack1(aiSensor1);
        if (!Enemy2DefendPlanet && aiSensor2 != null && MoveEnemyUnitToAttack2 != null)
            MoveEnemyUnitToAttack2(aiSensor2);
        if (!Enemy3DefendPlanet && aiSensor3 != null && MoveEnemyUnitToAttack3 != null)
            MoveEnemyUnitToAttack3(aiSensor3);
        Enemy1DefendPlanet = false;
        Enemy2DefendPlanet = false;
        Enemy3DefendPlanet = false;
    }

Why not pass the command as secondary param?