In una domanda precedente oggi questi due diversi approcci sono stati assegnati a una domanda come risposta.L'uso della trasmissione è due volte o utilizza una sola volta e crea una nuova variabile
Abbiamo un oggetto che potrebbe o meno implementare IDisposable
. Se lo fa, vogliamo eliminarlo, altrimenti non faremo nulla. I due approcci differenti sono queste:
1)
if(toDispose is IDisposable)
(toDispose as IDisposable).Dispose();
2)
IDisposable disposable = toDispose as IDisposable;
if(disposable != null)
disposable.Dispose();
Principalmente, dai commenti che suona come il consenso era che 2) è stato l'approccio migliore.
Ma guardando le differenze, scendiamo a questo:
1) Eseguire un cast due volte sul toDispose.
2) Esegui il cast una sola volta, ma crea un nuovo oggetto intermedio.
Direi che 2 sarà leggermente più lento perché deve allocare una nuova variabile locale, quindi perché è considerata la soluzione migliore in questo caso? È solo a causa di problemi di leggibilità?
Su una nota a margine, non mi preoccuperei delle variabili intermedie; una volta che il jitter ha avuto la sua strada con il tuo codice, è probabile che tutte le ipotesi che fai su micro-ottimizzazioni vengano invalidate. –