Curso de C#: Lição 6: Namespaces

Esta lição introduz-lhe as Namespaces em C#. Nossos objetivos são os seguintes: Entenda o que é Namespace. Saiba como implementar a directiva usando. Aprenda a usar alias directiva. Entenda o que são membros namespace.

Por Programação Pular para comentários
Esta li??o introduz-lhe as Namespaces em C#. Nossos objetivos s?o os seguintes:

* Entenda o que ? Namespace.
* Saiba como implementar a directiva usando.
* Aprenda a usar alias directiva.
* Entenda o que s?o membros namespace.


Na Aula 1, voc? viu o uso do sistema; directiva no SimpleHello programa. Esta directiva permitiu-lhe utilizar membros do Sistema namespace. Devido ao estreito foco dessa li??o, precis?vamos de atraso explica??o at? agora. Quando voc? tiver completado esta li??o voc? vai entender o uso directiva e muito mais.

Namespaces s?o programas C # com elementos concebidos para ajud?-lo a organizar os seus programas. Eles tamb?m prestar assist?ncia em nome evitando confrontos entre os dois conjuntos de c?digo. Implementar Namespaces no seu pr?prio c?digo ? um bom h?bito, pois ? prov?vel que lhe poupar de problemas mais tarde, quando voc? quiser reutilizar alguns de seus c?digos. Por exemplo, se voc? criar uma classe chamada Console, voc? precisa coloc?-la em seu pr?prio namespace para garantir que n?o houve qualquer confus?o sobre quando a classe System.Console deve ser usado ou quando a sua classe devem ser utilizados. Geralmente, seria uma m? id?ia de criar uma classe chamada Console, mas em muitos casos a sua aulas ser?o nomeadas da mesma forma em ambas as classes. NET Framework Class Library ou de um terceiro biblioteca e namespaces ajud?-lo a evitar os problemas que id?nticas Class nomes causaria.

Namespaces n?o correspondem ao arquivo ou diret?rio nomes. Se nomear diret?rios e arquivos de forma a corresponder aos namespaces ajuda a organizar o seu c?digo e, em seguida, voc? poder? faz?-lo, mas n?o ? necess?ria.

Listagem 6-1. C# Namespace: NamespaceCSS.cs
// Namespace Declaration
using System;

// The C# Station Namespace
namespace csharp_station
{
    // Program start class
    class NamespaceCSS
    {
        // Main begins program execution.
        public static void Main()
        {
            // Write to console
            Console.WriteLine("This is the new C# Station Namespace.");
        }
    }
}

Listagem 6-1 mostra como criar um namespace. N?s declaramos o novo namespace colocando a palavra namespace na frente de csharp_station.

Listagem 6-2. Namespace 1: NestedNamespace1.cs
// Namespace Declaration
using System;

// The C# Station Tutorial Namespace
namespace csharp_station
{
    namespace tutorial
    {
        // Program start class
        class NamespaceCSS
        {
            // Main begins program execution.
            public static void Main()
            {
                // Write to console
                Console.WriteLine("This is the new C# Station Tutorial Namespace.");
            }
        }
    }
}


Namespaces permitem-lhe criar um sistema para organizar o seu c?digo. Uma boa maneira de organizar a sua namespaces ? atrav?s de um sistema hier?rquico.Voc? colocou o mais geral nomes no topo da hierarquia e obter mais espec?fica as you go down. Este sistema hier?rquico pode ser representado por nested namespaces.Listagem 6-2 mostra como criar um namespace aninhadas. Ao colocar o c?digo em diversas sub-namespaces, voc? pode manter o seu c?digo organizado.

Listagem 6-3. Namespace 2:  NestedNamespace2.cs
// Namespace Declaration
using System;

// The C# Station Tutorial Namespace
namespace csharp_station.tutorial
{
    // Program start class
    class NamespaceCSS
    {
        // Main begins program execution.
        public static void Main()
        {
            // Write to console
            Console.WriteLine("This is the new C# Station Tutorial Namespace.");
        }
    }
}

Listagem 6-3 mostra uma outra forma de escrever aninhadas namespaces. Especifica o nested namespace com o operador ponto entre csharp_station e tutorial. O resultado ? exatamente o mesmo que Listing 6-2. No entanto, ? mais f?cil Listing 6-3 para escrever.

Listagem 6-4. Chamando membros da namespace : NamespaceCall.cs
// Namespace Declaration
using System;

namespace csharp_station
{
    // nested namespace
    namespace tutorial
    {
        class myExample1
        {
            public static void myPrint1()
            {
                Console.WriteLine("First Example of calling another namespace member.");
            }
        }
    }

    // Program start class
    class NamespaceCalling
    {
        // Main begins program execution.
        public static void Main()
        {
            // Write to console
            tutorial.myExample1.myPrint1();
            tutorial.myExample2.myPrint2();
        }
    }
}

// same namespace as nested namespace above
namespace csharp_station.tutorial
{
    class myExample2
    {
        public static void myPrint2()
        {
            Console.WriteLine("Second Example of calling another namespace member.");
        }
    }
}


Listagem 6-4 fornece um exemplo de como a chamada nominal membros com nomes totalmente qualificado. Um nome totalmente qualificado cont?m todas as l?nguas elemento do namespace nome para baixo para chamar o m?todo. No topo da lista existe um tutorial namespace aninhada dentro da esta??o namespace csharp-myExample1 com classe e m?todo myPrint1. Main () chama este m?todo totalmente qualificado com o nome de tutorial.myExample1.myPrint (). Desde Main (), o tutorial namespace est?o localizados no mesmo namespace, utilizando csharp_station no nome totalmente qualificado ? desnecess?rio.

Na parte inferior da Lista 6-4 ? um complemento ao csharp_station.tutorial namespace.As aulas myExample1 e myExample2 ambas pertencem ao mesmo namespace. Al?m disso, eles poderiam ser escritas em arquivos separados e que ainda pertencem ao mesmo namespace. Em Main (), o m?todo myPrint2 () ? chamada com o nome totalmente qualificado tutorial.myExample2.myPrint2 (). Embora a classe myExample2 est? fora da delimitadora correias de onde o m?todo myPrint2 ? chamado, o namespace csharp_station n?o precisa de ser uma parte do nome totalmente qualificado. Isso porque ambas as classes pertencem ao mesmo namespace, csharp_station.

Repare que eu usei nomes diferentes para as duas classes myExample1 e myExample2. Isso foi necess?rio porque cada namespace membro do mesmo tipo deve ter um nome exclusivo. Lembre-se, eles s?o ambos no mesmo namespace e voc? n?o gostaria que qualquer ambiguidade sobre qual classe de usar. Os m?todos myPrint1 () e myPrint2 () t?m nomes diferentes s? porque iria fazer a li??o um pouco mais f?cil de seguir. Eles poderiam ter tido o mesmo nome, sem efeito, porque as turmas s?o diferentes, evitando assim qualquer ambiguidade.

Listagem 6-5. Usando uma Directiva: UsingDirective.cs
// Namespace Declaration
using System;
using csharp_station.tutorial;

// Program start class
class UsingDirective
{
    // Main begins program execution.
    public static void Main()
    {
        // Call namespace member
        myExample.myPrint();
    }
}

// C# Station Tutorial Namespace
namespace csharp_station.tutorial
{
    class myExample
    {
        public static void myPrint()
        {
            Console.WriteLine("Example of using a using directive.");
        }
    }
}


Se voc? gostaria de chamar m?todos sem digitar seu nome totalmente qualificado, voc? pode executar usando a directiva. Em Listing 6-5, que mostram duas directivas usando. O primeiro, usando o sistema, ? o mesmo usando directiva que voc? j? viu, em cada programa neste tutorial. Ela permite que voc? digite o m?todo nomes dos membros do Sistema namespace sem digitar a palavra Sistema de cada vez. Em myPrint (), Console ? um membro da classe System namespace com o m?todo WriteLine (). Seu nome ? totalmente qualificado System.Console.WriteLine (...).

Do mesmo modo, a directiva usando usando csharp_station.tutorial nos permite chamar membros da csharp_station.tutorial namespace sem digitar o nome totalmente qualificado. Esta ? a raz?o pela qual n?s podemos tipo myExample.myPrint (). Sem o uso directiva, ter?amos de tipo csharp_station.tutorial.myExample.myPrint () sempre quisemos chamar esse m?todo.

Listagem6-6. A Directiva Alias: AliasDirective.cs
// Namespace Declaration
using System;
using csTut = csharp_station.tutorial.myExample; // alias

// Program start class
class AliasDirective
{
    // Main begins program execution.
    public static void Main()
    {
        // Call namespace member
        csTut.myPrint();
        myPrint();
    }

    // Potentially ambiguous method.
    static void myPrint()
    {
        Console.WriteLine("Not a member of csharp_station.tutorial.myExample.");
    }
}

// C# Station Tutorial Namespace
namespace csharp_station.tutorial
{
    class myExample
    {
        public static void myPrint()
        {
            Console.WriteLine("This is a member of csharp_station.tutorial.myExample.");
        }
    }
}


?s vezes, voc? pode encontrar uma longa namespace e desejo que ele seja mais curto. Isso poderia melhorar a legibilidade e ainda evitar confrontos com nome semelhante chamado m?todos.Listagem 6-6 mostra como criar um alias com o apelido directiva usando csTut = csharp_station.tutorial.myExample. Agora, a express?o csTut pode ser usado em qualquer lugar, neste arquivo, em lugar de csharp_station.tutorial.myExample. N?s us?-lo em Main ().

Tamb?m em Main () ? uma chamada para o myPrint () AliasDirective m?todo da classe. Este ? o mesmo nome que o myPrint () m?todo na classe myExample. O motivo de ambos estes m?todos podem ser postas no mesmo m?todo, porque a chamada ? myPrint () m?todo na classe myExample ? qualificada com o csTut alias. Isto permite que o compilador saber exactamente qual o m?todo est? a ser executada. Se tiv?ssemos erradamente omitidos csTut do m?todo de chamada, o compilador teria criado o myPrint () m?todo da classe AliasDirective a correr duas vezes.

At? agora, todos n?s temos os nossos nomes s?o mostrados em classes. No entanto, namespaces pode realizar outros tipos como segue:
* Classes
* Estruturas
* Interfaces
* Enumera?es
* Delegados

Na pr?xima li??o veremos cada um deles.

Resumo


Em resumo, voc? sabe o que ? um namespace e voc? pode declarar a sua pr?pria namespaces. Se voc? n?o quiser digitar um nome completamente qualificado, voc? sabe como implementar a directiva usando. Quando quiser encurtar uma longa declara??o namespace, voc? pode usar o apelido directiva. Al?m disso, tem sido introduzida em alguns dos outros membros namespace para al?m do tipo de turma.

Artigo traduzido automaticamente de: http://www.csharp-station.com/Tutorials/Lesson06.aspx

Mais sobre: curso_c_sharp, c sharp
Compartilhe com seus amigos:
Quer conversar com o(a) Redação, comente:
Carregar comentários
Quantos celulares a Motorola tem em linha?
5(15,67%)
10(56,85%)
15(11,64%)
20(7,97%)
26(7,88%)
NOTÍCIAS RELACIONADAS