Instrução import

Permite o acesso a um namespace contido dentro do script atual ou em uma biblioteca externa.

import namespace

Argumentos

  • namespace
    Obrigatório. Nome do namespace para importar.

Comentários

O Importar instrução cria uma propriedade no objeto global com o nome fornecido como namespace e o inicializa para conter o objeto que corresponde ao namespace que está sendo importado. Quaisquer propriedades criados com o Importar declaração não pode ser atribuída a, excluída ou enumerada. Todos os Importar instruções são executadas quando um script é iniciado.

O Importar instrução disponibiliza um espaço para nome para o seu script. O espaço para nome pode ser definido no script usando o pacote instrução ou um assembly externo pode fornecer. Se o espaço para nome não for encontrado dentro do script, JScript procura um assembly que coincide com o nome do namespace em diretórios de assembly especificado, a menos que o programa está sendo compilado e a opção /autoref estiver desativada. Por exemplo, se você importar o namespace Acme.Widget.Sprocket e o namespace não é definido dentro do script atual, JScript irá procurar o espaço para nome nos assemblies do seguintes:

  • Acme.Widget.Sprocket.dll

  • Acme.Widget.dll

  • Acme.dll

Você pode especificar o nome do assembly para incluir explicitamente. Isso deve ser feito se a opção /autoref estiver desativada ou se o nome do namespace não corresponde ao nome de assembly. O compilador de linha de comando usa a opção /reference para especificar o nome do assembly, enquanto ASP.NET usa o @ Import e @ Assembly diretivas para fazer isso. Por exemplo, para incluir explicitamente o mydll.dll de montagem da linha de comando digite

jsc /reference:mydll.dll myprogram.js

Para incluir o assembly de um ASP.NET página, você usaria

<%@ Import namespace = "mydll" %>
<%@ Assembly name = "mydll" %>

Quando uma classe é mencionada no código, o compilador procura primeiro a classe no escopo local. Se o compilador não encontra nenhuma classe correspondente, o compilador procura a classe em cada espaço para nome, na ordem em que foram importados e pára quando encontra uma correspondência. Você pode usar o nome totalmente qualificado da classe para ter certeza de qual namespace a classe deriva.

JScript não importa automaticamente namespaces aninhados. cada namespace deve ser importado usando o espaço para nome totalmente qualificado. Por exemplo, para classes de acesso a partir de um namespace chamado Outer e um namespace aninhado chamado Outer.Inner, ambos os espaços para nome devem ser importados.

Exemplo

O exemplo a seguir define três pacotes simples e importa os namespaces no script. Normalmente, cada pacote seria em um assembly separado para permitir a manutenção e a distribuição do conteúdo do pacote.

// Create a simple package containing a class with a single field (Hello).
package Deutschland {
   class Greeting {
      static var Hello : String = "Guten tag!";
   }
};
// Create another simple package containing two classes.
// The class Greeting has the field Hello.
// The class Units has the field distance.
package France {
   public class Greeting {
      static var Hello : String = "Bonjour!";
   }
   public class Units {
      static var distance : String = "meter";
   }
};
// Use another package for more specific information.
package France.Paris {
   public class Landmark {
      static var Tower : String = "Eiffel Tower";
   }
};

// Declare a local class that shadows the imported classes.
class Greeting {
   static var Hello : String = "Greetings!";
}

// Import the Deutschland, France, and France.Paris packages.
import Deutschland;
import France;
import France.Paris;

// Access the package members with fully qualified names.
print(Greeting.Hello);
print(France.Greeting.Hello);
print(Deutschland.Greeting.Hello);
print(France.Paris.Landmark.Tower);
// The Units class is not shadowed, so it can be accessed with or without a fully qualified name.
print(Units.distance);
print(France.Units.distance);

A saída desse script é:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Requisitos

Versão.NET

Consulte também

Referência

Declaração de pacote

/autoref

/lib

@ Assembly

@ Import