Si tengo código como este:Declaración de variables lo más tarde posible y pasando método que vuelve como un parámetro
string s = MyClass.GetString(); // Returns string containing "hello world";
ProcessString(s);
¿Es esta la más lenta de lo?
ProcessString(MyClass.GetString());
Si es así, ¿por qué? En el segundo ejemplo, el compilador generalmente crea una variable de GetString(); método que devuelve una cadena?
Además, ¿cuál es la ventaja de declarar las variables lo más tarde posible? ¿Esto beneficia a la GC? Si es así, ¿cómo (estoy asumiendo en términos de GC gens)?
Gracias
Gracias. Entonces, para los dos ejemplos de código, son prácticamente iguales bajo el capó. Entiendo completamente tu respuesta en mi segunda consulta. :) – dotnetdev
Si declara variables en la parte superior del bloque, luego asigne a ellas más adelante, está llamando innecesariamente a su constructor predeterminado. Probablemente no sea un gran problema en la mayoría de los casos. –
George V. Reilly dijo "Si declaras variables en la parte superior del bloque, luego les asignas más adelante, estás llamando innecesariamente a su constructor predeterminado", pero esto solo es cierto en C++. La pregunta fue etiquetada como C# y no se llamó a ningún constructor en este caso. La referencia simplemente tiene el valor nulo. – alexk7