2010-10-21 11 views

Respuesta

8

La función principal de la directiva using es hacer que los tipos dentro de un espacio de nombres estén disponibles sin calificación para el código de usuario. Considera el conjunto de espacios de nombres y tipos definidos en los ensamblados a los que se hace referencia y el proyecto que se está compilando.

Tomemos por ejemplo la definición siguiente en MyTypes.Dll

namespace MyTypes { 
    class Class1 {} 
} 

Consideremos ahora referencia a MyTypes.dll de otro proyecto con un espacio de nombres diferente. Sin una directiva using para crear Class1 necesito para calificar el nombre

MyTypes.Class1 local1 = new MyTypes.Class1(); 

La directiva using me permite eliminar esta calificación

using MyTypes; 
... 
Class1 local1 = new Class1(); 
+0

también, si el tipo no se encuentra en el espacio de nombres de la aplicación, el compilador buscará los espacios de nombres incluidos mediante el uso, ¿verdad? – Loj

+1

@Mojmi para el caso común sí. La búsqueda de nombres en realidad es bastante compleja y específicamente no hice ningún comentario sobre cómo funciona exactamente debido a la gran probabilidad de que los detalles de la diversión no sean correctos. – JaredPar

0

using informa al compilador qué espacios de nombres buscan los nombres utilizados en el archivo pero no definidos en el archivo.

2

@ respuesta de JaredPar es correcto, sin embargo, me gustaría añadir que no funciona del mismo modo que dice import en Java. (Alguien me corrija si estoy equivocado acerca de Java de import realidad importarlo en la memoria)

Es necesario incluir un DLL o referencia del proyecto con el fin de incluso ser capaz de utilizar using sin embargo, no está cargado en la memoria hasta que realmente llamar a un método/propiedad/algo en el conjunto. De modo que podría tener using System.Linq;, pero si no usa realmente ningún método Linq, nunca se cargará el conjunto Linq. (No estoy 100% seguro de que Linq está en su propio ensamblaje físico ya que los espacios de nombres y los ensamblajes no son 1: 1, pero para el ejemplo supongo que lo es)

0

usando simplemente indicar al compilador que se vaya al archivo de configuración del ensamblado y busque un archivo DLL específico con el nombre dado, si se encuentra el archivo DLL, entonces vincula ese archivo DLL al proyecto actual. usar es solo una operación de enlace para que DLL se comunique en un espacio compartido de la memoria. El chico de abajo es el correcto

Cuestiones relacionadas