c# - remarks - ¿Usar las instrucciones vs ruta de espacio de nombres? DO#
remarks c# (6)
Creo que este estilo resulta en una disminución del rendimiento del programador :). Utilizo la instrucción using y, por lo general, está claro en el código al que pertenecen los nombres a la clase. Si no, presiona F12.
Sólo mi 2c.
Recientemente dejé de usar using-statement y en su lugar utilizo la ruta completa del espacio de nombres de cualquier objeto .net que llamo.
Ejemplo:
using System;
namespace QuizViewer
{
class Class1
{
Console.WriteLine("Hello World!");
}
}
Esto es lo que hago ahora.
namespace QuizViewer
{
class Class1
{
System.Console.WriteLine("Hello World!");
}
}
Antes de preguntar por qué hago esto, estoy usando este estilo para poder ver exactamente de dónde vienen mis objetos y es más fácil cuando se usan los diferentes objetos del temporizador y otros objetos con nombres similares.
¿Hay algún aumento o disminución de rendimiento en este estilo de programación?
El único éxito de rendimiento, es el golpe que tomas para escribirlo todo, y contigo o con otros que lo leen.
El uso de declaraciones es para ayudar a la legibilidad, no para el rendimiento.
La diferencia de rendimiento es cero porque el compilador SIEMPRE ingresa el nombre completo; el uso es solo una sugerencia para el compilador, el tiempo de ejecución no lo sabe ni lo admite.
Sin embargo, una vez que memorice de dónde provienen los objetos, verá esto como tonto y detallado. Hay tanto ruido y la gente solo sabe que la ruta es de System.IO, la consola está en System y StringBuilder está en System.Text.
Una desventaja de su enfoque: sin usar, no hay métodos de extensión fuera del espacio de nombres actual. Diviértete escribiendo System.Linq.Enumerable.Where(inputSequence,...)
lugar de solo inputSequence.Where(...)
:)
No hay impacto en el rendimiento; Es sobre todo una opción estilística. Encuentro que el uso de sentencias reduce el desorden. Además, con Intellisense, es bastante fácil ver el espacio de nombres completamente calificado.
Respuesta corta no: es el mismo código que se compila.
Si desmonta ambos fragmentos de código y mira el código IL, encontrará que el compilador siempre hace referencia a todos los tipos por sus nombres completos. Esas son formas absolutamente idénticas a los tipos de operación.