Qual è l'implicazione dei costi sulla riassegnazione di una variabile in un'istruzione if

0

Ho un software che ha utenti diversi (admin / utente) Nella versione admin puoi caricare subito le modifiche. Mentre un utente non ha questa capacità deve salvarlo per ottenere l'autorizzazione. Per visualizzare le opzioni ho scritto il mio codice in questo modo.

        actionMode = ActionBarMode.SaveCancel;

        if (Config.ConfigVersion < 1)
        {
            //Allow the user to upload logs to trackserver
            this.ActionMode = ActionBarMode.SaveUploadCancel;
        }

actionMode è dichiarato altrove e lo sto solo cambiando in questo gestore di eventi. Mi chiedevo quali fossero le implicazioni di costo dell'assegnazione della variabile due volte nel caso di un utente admin rispetto all'utilizzo di un'istruzione if else.

So che questo costo (se presente) è probabilmente trascurabile, ma ero solo curioso.

Modifica per spiegare perché non è un duplicato di quella domanda: Mentre sì la mia domanda riguarda Micro-Optimizing, la mia domanda riguarda più un caso specifico di cui ero solo curioso. Lo riconosco alla fine del mio post, ma apprezzo molto il link perché è una buona lettura.

    
posta Keithin8a 07.11.2016 - 10:30
fonte

1 risposta

6

A meno che tu non sia ossessivo per la micro-ottimizzazione del tuo codice, il costo è puramente in termini di leggibilità e complessità, che in fin dei conti è importante almeno quanto le prestazioni.

Assegnare una variabile, eseguire un test e quindi potenzialmente riassegnare tale variabile. Puoi semplificarlo con un singolo controllo / set:

actionMode = Config.ConfigVersion < 1 
    ? ActionBarMode.SaveUploadCancel 
    : ActionBarMode.SaveCancel;

E non dovresti essere ossessivo per la micro-ottimizzazione del tuo codice, perché probabilmente lo farai comunque male. Scrivi chiaro, facile da leggere e capire il codice, quindi ottimizza solo dopo aver eseguito correttamente il test delle prestazioni dell'app.

    
risposta data 07.11.2016 - 10:41
fonte

Leggi altre domande sui tag