Diretiva de uso
Recolher sumário
Expandir sumário

Diretiva using (Referência de C#)

 

A using diretiva tem três usos:

  • Para permitir o uso de tipos em um namespace para que você não precisa qualificar o uso de um tipo no namespace:

    using System.Text;
    
  • Para permitir que você acesse membros estáticos de um tipo sem ter que qualificar o acesso com o nome do tipo:

    using static System.Math;
    
  • Para criar um alias para um namespace ou um tipo.  Isso é chamado de um usando diretiva alias.  

    using Project = PC.MyCompany.Project;
    

O using palavra-chave também é usado para criar usando instruções, ajudar a garantir que IDisposable objetos como arquivos e as fontes são tratados corretamente.  Consulte usando a instrução para obter mais informações.  

Você pode acessar os membros estáticos de um tipo sem ter que qualificar o acesso com o nome do tipo:

using static System.Console; 
using static System.Math;
class Program 
{ 
    static void Main() 
    { 
        WriteLine(Sqrt(3*3 + 4*4)); 
    } 
}

Using static Importa apenas membros estáticos acessíveis e tipos aninhados declarados no tipo especificado.  Membros herdados não serão importados.  Você pode importar de qualquer tipo nomeado com o uso de uma diretiva estática, incluindo os módulos do Visual Basic.  Se aparecem um funções de nível superior F # nos metadados como membros estáticos de um tipo nomeado cujo nome é um identificador válido do c#, as funções do F # podem ser importadas.  

Using static faz com que os métodos de extensão declarados no tipo especificado disponível para pesquisa de método de extensão.  No entanto, os nomes dos métodos de extensão não são importados no escopo de referência não qualificada no código.  

Métodos com o mesmo nome importados de diferentes tipos, por diferentes usando diretivas estáticas da mesma forma de namespace ou unidade de compilação de um grupo de método.  Resolução de sobrecarga nesses grupos de método segue as regras normais de c#.  

O escopo de um using diretiva é limitada para o arquivo no qual ele aparece.

Criar um using alias para facilitar qualificar um identificador para um namespace ou tipo.  O lado direito do uso de um alias diretiva sempre deve ser um tipo totalmente qualificado, independentemente do uso de diretivas que vêm antes dele.  

Criar um using diretiva para usar os tipos em um namespace sem ter que especificar o namespace.  A using diretiva não dá acesso a quaisquer namespaces aninhados no namespace que você especificar.  

Namespaces vêm em duas categorias: definidos pelo usuário e definidos pelo sistema.  Namespaces definidos pelo usuário são namespaces definidos em seu código.  Para obter uma lista de namespaces definidos pelo sistema, consulte biblioteca de classes do .NET Framework.  

Para obter exemplos de métodos em outros assemblies de referência, consulte Criando e usando c# DLLs.

O exemplo a seguir mostra como definir e usar um using alias para um namespace:

namespace PC
{
    // Define an alias for the nested namespace.
    using Project = PC.MyCompany.Project;
    class A
    {
        void M()
        {
            // Use the alias
            Project.MyClass mc = new Project.MyClass();
        }
    }
    namespace MyCompany
    {
        namespace Project
        {
            public class MyClass { }
        }
    }
}

Uso de uma diretiva de alias não pode ter um tipo genérico aberto no lado direito.  Por exemplo, você não pode criar um alias using para uma List < T >, mas você pode criar um para obter uma lista < int >.  

O exemplo a seguir mostra como definir um using diretiva e uma using alias para uma classe:

using System;

// Using alias directive for a class.
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class.
using UsingAlias = NameSpace2.MyClass<int>;

namespace NameSpace1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "You are in NameSpace1.MyClass.";
        }
    }

}

namespace NameSpace2
{
    class MyClass<T>
    {
        public override string ToString()
        {
            return "You are in NameSpace2.MyClass.";
        }
    }
}

namespace NameSpace3
{
    // Using directive:
    using NameSpace1;
    // Using directive:
    using NameSpace2;

    class MainClass
    {
        static void Main()
        {
            AliasToMyClass instance1 = new AliasToMyClass();
            Console.WriteLine(instance1);

            UsingAlias instance2 = new UsingAlias();
            Console.WriteLine(instance2);

        }
    }
}
// Output: 
//    You are in NameSpace1.MyClass.
//    You are in NameSpace2.MyClass.

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Mostrar:
© 2016 Microsoft