Metodo che accetta il parametro array [duplicato]

-1

Voglio implementare due metodi: AddPlayers e AddPlayer . È meglio quando AddPlayers chiama AddPlayer o AddPlayer chiama AddPlayers con un singolo array di elementi? C'è una differenza significativa nelle prestazioni e nell'output IL?

// AddPlayers contains the logic
void AddPlayer(Player player)
{
    return AddPlayers(new [] { player });
}

vs

// AddPlayer contains the logic
void AddPlayers(IEnumerable<Player> players)
{
    foreach (var player in players)
    {
        AddPlayer(player);
    } 
}
    
posta Konrad 06.12.2018 - 16:05
fonte

1 risposta

4

Vorrei fare 2 domande:

  1. Quale scelta si traduce in un codice più leggibile?
  2. La scelta ti darà un'opportunità di ottimizzazione ovvia , basata su casi d'uso previsti?

    Gnat ha ragione nel suo commento sulla micro-ottimizzazione, ma se stai aggiungendo 100.000 giocatori contemporaneamente, vorrai la logica in AddPlayers (con un inserto di massa). Vorrai anche un commento in AddPlayer che avvisa lo sviluppatore di non chiamarlo in un ciclo.

In una situazione più tipica (aggiungendo forse al massimo una dozzina di giocatori alla volta), allora probabilmente non importa molto quale opzione scegli.

    
risposta data 06.12.2018 - 16:30
fonte

Leggi altre domande sui tag