Se ho il codice come questo:Dichiarare variabili il più tardi possibile e passando metodo che restituisce come parametro
string s = MyClass.GetString(); // Returns string containing "hello world";
ProcessString(s);
E` più lentamente di quanto?
ProcessString(MyClass.GetString());
Se sì, perché? Nel secondo esempio, il compilatore generalmente genera una variabile da GetString(); metodo che restituisce una stringa?
Inoltre, qual è il vantaggio di dichiarare le variabili il più tardi possibile? Questo avvantaggia il GC? Se è così, come (sto assumendo in termini di GC Gens)?
Grazie
Grazie. Quindi, per i due esempi di codice, sono praticamente gli stessi sotto il cofano. Comprendo perfettamente la tua risposta alla mia seconda domanda. :) – dotnetdev
Se dichiarate le variabili nella parte superiore del blocco, quindi assegnatele in seguito, chiamate inutilmente il costruttore predefinito. Probabilmente non è un grosso problema nella maggior parte dei casi. –
George V. Reilly ha detto "Se dichiari le variabili nella parte superiore del blocco, quindi assegnale a loro in un secondo momento, stai chiamando inutilmente il loro costruttore predefinito", ma questo è vero solo in C++. La domanda è stata contrassegnata come C# e nessun costruttore viene chiamato in questo caso. Il riferimento ha semplicemente il valore null. – alexk7