Skip to content

Latest commit

 

History

History
123 lines (101 loc) · 3 KB

14-Namespace.md

File metadata and controls

123 lines (101 loc) · 3 KB

3.16 Namespace

Os namespaces, em C#, tendem a ser utilizados para organizar suas classes e projetos dentro de uma mesma solução. Somente para ilustrar ao leitor, a maioria dos aplicativo do C#, começam com uma seção de using. Esta seção lista todos os namespaces que o aplicativo usará com frequência, evitando que o programador repita o nome a cada vez que o método contido for utilizado.

Podemos observar melhor com o exemplo abaixo:

using System; //Neste caso fazemos uma referência ao namespace System.

public class Program
{
	private int somador(int a, int b)
	{
		return a+b;
	}

	public void Main()
	{
		Console.WriteLine(somador(10,20));
		System.Console.WriteLine(somador(10,20)); //Também é possível executar o código acima, desta forma, fazendo com que não seja necessário adicionar a diretiva using System
	}
}

No exemplo acima, não criamos nenhum namespace, porém, é possível fazer isso da seguinte forma:

namespace nome_do_namespace {
   // código
}

Ou seja, é possível encapsular toda a parte de soma em um namespace único e utilizar em outro código de maneira mais organizada. Como podemos observar abaixo:

using System;
using Calculadora;

namespace Calculadora
{
	public class FuncoesBasicas
	{
		public static int Somador(int a, int b)
		{
			return a+b;
		}
	}
}

public class Program
{
	public void Main()
	{
		Console.WriteLine(FuncoesBasicas.Somador(10,20));
	}
}

é importante ressaltar também que a criação de namespaces, não se limitam a um só por código ou projeto. Também é possível criar namespaces aninhados, onde, neste caso, teremos que acessar o namespace utilizando ponto(.).

Observe o exemplo abaixo:

using System;
using Projeto.Calculadora; //Acessa o namespace Calculadora que se encontra dentro do projeto.
using Projeto.DiasDaSemana; //Acessa o namespace DiasDaSemana que se encontra dentro do projeto.

namespace Projeto
{
	//Namespace dentro do namespace Projeto.
	namespace Calculadora
	{
		public class FuncoesBasicas
		{
			public static int Somador(int a, int b)
			{
				return a+b;
			}
		}
	}
	//Namespace dentro do namespace Projeto.
	namespace DiasDaSemana
	{
		public enum Dias {
			Dom,
			Seg,
			Ter,
			Qua,
			Qui,
			Sex,
			Sab
		};
	}
}

public class Program
{
	public void Main()
	{
		Console.WriteLine(FuncoesBasicas.Somador(10,20));
		Console.WriteLine(Dias.Sab);
	}
}

A partir da versão 10 da linguagem C#, é possível também realizar a declaração de namespaces com escopo de arquivo. Ou seja, podemos utilizar dentro de um arquivo .cs a declaração using dispensando a utilização das chaves { } para a delimitação do escopo do namespace. Desta forma, estamos indicando que todas as declarações logo abaixo da definição do namespace, pertencem a este namespace:

namespace Projeto;

public void Main()
{
    Console.WriteLine("Hello World!");
}

Essa nova sintaxe economiza espaço horizontal e vertical para as declarações de namespaces e torna o arquivo de código mais legível.