2012-03-19 16 views
6

Yo sé que en java que utilizamos * (asterisco) para importar todos los contenidos en un paquete comoDiferencia entre C# usando e importación de Java

import java.lang.*; 

Entonces, ¿por qué no usamos mismo * (asterisco) en C# para importar todos los contenidos, hay algún método como en java para importar todos los contenidos. ¿Cuál es la diferencia entre

import java.awt.*; 

y

using System.windows.forms; 

Respuesta

9

Lo que el Java import .NET hace lo que se llama una referencia - añadir una referenciaa una asamblea en .NET permite el uso de la (públicos) tipos definidos en ese ensamblado.

El C# using directive es simplemente una forma de acceder a este tipo sin necesidad de escribir a cabo todo el espacio de nombres.

Puede también utilice la directiva para proporcionar alias de espacio de nombres.

+0

No creo que esto sea correcto con respecto a Java. En Java, importar también es una forma de escribir menos. Conseguir el compilador para ver los paquetes y las clases se realiza en otra parte: en la línea de comandos, en los archivos de proyecto (Maven, Ant, algo IDE-específico), etc. – marcus

0

En Java, sin *, que tienen que importar clases individuales. En C#, el uso de directivas es para espacios de nombres (pero no para ningún espacio de nombres secundario, es decir, que usa System; no obtiene System.Windows.Forms). Por lo tanto, importar java.awt. * Le proporciona casi lo mismo que usar System.Windows.Forms, por lo que realmente no es necesario * en .Net.

0

ser claro acerca de lo que está haciendo de Java import. A pesar del nombre, no se están cargando archivos .class. Todo lo que estás haciendo es guardarte escribiendo. Java import le permite referirse a una clase utilizando su nombre corto en lugar de su nombre de clase totalmente resuelto-(por ejemplo, en lugar de Stringjava.lang.String).

C# using es diferente de Java import si realmente agrega algo a un ensamblado. El cargador Java carga el código Java byte de clase, según lo necesite, no antes.

+0

Sospecho que estamos dividiendo pelos aquí, sino un C# usando añade poco al ensamblado, a menos que cuente que impone un requisito de que el ensamblado de implementación debe nombrarse como referencia. Hasta donde puedo determinar, es la referencia que realmente modifica el ensamblaje. Siendo así, me parece que el uso de C# y la importación de Java son nombres esencialmente diferentes para el mismo bicho. –

+0

Cinco años después, dudo que importe. – duffymo

+0

Si lo estoy leyendo 5 años después, me importa a mí, y probablemente a otros en busca de la misma información que me trajo a esta página hoy. Además, también creo que es importante que los lectores entiendan que agregar una declaración de uso no es suficiente para alterar el ensamblaje de manera significativa sin el ensamblaje apropiado en la lista de referencias. Eso es lo que entra en el manifiesto, que, hasta donde puedo decir, es la única forma en que se puede decir que afecta el ensamblaje, ya que el uso es solo el código fuente. –

Cuestiones relacionadas