2010-01-05 7 views
5

He estado usando re-nítida desde hace mucho tiempo y acostumbrarse a resolver muchos problemas por tipo Alt +Introduzca, hoy uno de mis colegas pregunta cuáles son los verdaderos beneficios. Y no podría decir una palabra aparte de si no la está usando, por qué la importa.¿Cuál es el beneficio de la eliminación de las importaciones redundantes en vb.net o el uso en C# archivo

¿Puede alguien explicarme cuáles son los beneficios reales si alguno?

+0

¿Por redundante te refieres a inútil? –

+0

Piense en ello como limpiar su habitación o hacer su cama. – Josh

+0

Se ha preguntado muchas veces. Por favor, mira este hilo: http://stackoverflow.com/questions/136278/why-should-you-remove-unnecessary-c-using-directives – womp

Respuesta

6

Además de limpiar su código, también puede minimizar los "conflictos de nombres".
Por ejemplo, cuando tiene 2 tipos con el mismo nombre en diferentes espacios de nombres, y no usa ningún tipo de un espacio de nombre ... Entonces no tiene que especificar el espacio de nombres del tipo cuando lo usa, mantiene su código limpiador

0

Es más rápido: si tiene una referencia, el compilador tiene que cargar las tablas de símbolos.

+1

The topicstarter no está hablando de referencias a ensamblajes, habla sobre la importación/uso de espacios de nombres que no se utilizan. –

+0

Sí, lo sé. ¿Cómo crees que los compiladores pueden resolver los nombres cuando utilizas la declaración de importación? El compilador va y lee una tabla de símbolos para ese espacio de nombres y coloca los nombres en la tabla de símbolos para que pueda resolverlos.No me importa obtener un -1 cuando está mal, pero este es el compilador que escribe 101. – Hogan

+0

Aquí tienes @Frederik alguien más que dijo lo mismo http://stackoverflow.com/questions/136278/why-should-you- remove-innecesario-c-using-directives/136320 # 136320 – Hogan

0

No hay beneficios de rendimiento en tiempo de ejecución o compilación, en absoluto. Solo hace un código más bonito.

+0

¿No sería más lenta la compilación si se cargan más símbolos? – Hogan

+0

Quizás, pero solo marginalmente; el ojo humano rara vez sería capaz de notar la diferencia. Tendrá muchos más problemas de rendimiento al cargar proyectos referenciados durante la compilación que a partir de instrucciones de uso innecesarias. – Randolpho

2

Reduce el tamaño de su código fuente (muy levemente), pero también mejora la calidad del código en mi opinión. Si solo incluye lo que necesita, el propósito del archivo es mucho más claro.

Si incluye una biblioteca que no necesita, y estoy leyendo su código, podría terminar perdiendo el tiempo tratando de averiguar dónde lo hace referencia o por qué se usa.

1

Si importa más de lo necesario se encuentra con algunos problemas:

  • Cuando intenta utilizar una clase, es ambiguo, que la clase que quiere decir y usted tiene que especificar más para eliminar la ambigüedad
  • Autocompletar sugiere muchas cosas que es poco probable que utilices (generalmente hace esto de todos modos, pero tener usos adicionales solo empeora el problema).
  • Es difícil saber qué dependencias tiene su clase simplemente al mirar la lista de uso.
4

Elimina la redundancia, que es una buena cosa. y es fácil de obtener la mayoría de los que utilizan las directivas necesarias atrás, presionando ALT +ENTER (con R #) o la invocación de la etiqueta inteligente presionando CTRL +. (sin R #) en la clase que lo necesita.

En el lado negativo, puede perder de vista los métodos de extensión disponibles, especialmente cuando se elimina la importación del espacio de nombres System.Linq.

+0

solo una nota: Resharper mostrará la lista rápida para agregar espacio de nombres System.Linq si comienza a escribir expresiones de consulta de linq. –

Cuestiones relacionadas