Ultilização de Namespaces em C#

Namespaces C#

Os namespaces são usados para dividir as muitas classes criadas dentro do c# assim voce consegue ter duas classes com o mesmo nome em namespaces diferentes

Exemplos:

Uso/Exemplos

namespace Calc1
{
    class Area
    {
        public static int Mult(int a, int b)
        {
            return a * b;
        }
    }
}
namespace Calc2
{
    class Area
    {
        public static int Mult(int a, int b)
        {
            return a * b;
        }
    }
}

Referência

As namespace ajuda a organizar sematicamente grupos de códigos que faz sentindo. Ajudando a semparar o contexto de classes para organizar o seu código. vamos supor se você quer separar o seu código em camadas criaria uma namespace para cada camada. Vamos supor que você possui uma camada para interface grafica chamada ui. é uma camada grande você pode incluir subcamadas por exemplo buttons, window, forms e etc.

abaixo mostro um exemplo de você usando algumas namespace personalizada.

using ui.buttons;
using ui.window;

namespace Application {
    public static void Main () {
        // ...
    }
}

Quando criamos namespace além da opção de organizar o nosso código podemos criar classes com o mesmo nome que faz parte de contexto separados. Você pode criar camadas para seguir a arquitetura lima de uncle bob. Parapéns por está contribuindo com a comunidade.

Muito obrigado pelo seu resumo sobre namespaces, estou vendo esse assunto e tentando entender melhor com isso estudando e ajudando outras pessoas com o que estou vendo
de nada meu amigo, precisando é só falar.

Opa, show de bola, dando uma dica que saiu no dotnet7 com o C# 11 foi a declaração do namespace sem precisar usar a chaves:

namespace Calc1;

class Area
{
    public static int Mult(int a, int b)
    {
        return a * b;
    }
}

Dessa forma melhora a visualização da classe como um todo pois vai perder 1 nivel de identação.

A melhor forma de entende namespaces é que ele é apenas um sobrenome para tipos. Assim você cria famílias. Então quando for usar algo você diz de que família é, fica mais fácil porque segregue e permite que nomes iguais sejam usadas desde que em famílias diferentes.

Para coisas simples eles não são necessários. O exegero no uso deles é má prática.

Além de não precisar de chaves, como citado em outra resposta aqui, é possível importar globalmente e não ter que fazer isso em cada arquivo fonte. Aqui não não fala sosbre as importações deles.

Farei algo que muitos pedem para aprender programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).