Compartilhar via


Tutorial: Criar uma biblioteca de classes .NET

Neste tutorial, você criará uma biblioteca de utilitários simples que contém um único método de tratamento de cadeia de caracteres.

Uma biblioteca de classes define tipos e métodos que são chamados por um aplicativo. Se a biblioteca se destinar ao .NET Standard 2.0, ela poderá ser chamada por qualquer implementação do .NET (incluindo o .NET Framework) que dê suporte ao .NET Standard 2.0. Se a biblioteca for direcionada para .NET 10, ela poderá ser chamada por qualquer aplicativo direcionado para .NET 10. Este tutorial mostra como direcionar .NET 10.

Ao criar uma biblioteca de classes, você pode distribuí-la como um componente de terceiros ou como um componente agrupado com um ou mais aplicativos.

Pré-requisitos

Instruções de instalação

Em Windows, use este arquivo de configuração WinGet para instalar todos os pré-requisitos. Se você já tiver algo instalado, o WinGet ignorará essa etapa.

  1. Baixe o arquivo e clique duas vezes para executá-lo.
  2. Leia o contrato de licença, digite ye selecione Enter quando solicitado a aceitar.
  3. Se você receber um prompt de UAC (Controle de Conta de Usuário) piscando na barra de tarefas, permita que a instalação continue.

Em outras plataformas, você precisa instalar cada um desses componentes separadamente.

  1. Baixe o instalador recomendado na página de download do .NET SDK e clique duas vezes para executá-lo. A página de download detecta sua plataforma e recomenda o instalador mais recente para sua plataforma.
  2. Baixe o instalador mais recente da home page Visual Studio Code e clique duas vezes para executá-lo. Essa página também detecta sua plataforma e o link deve estar correto para o sistema.
  3. Clique no botão "Instalar" na página de extensão do DevKit em C#. Isso abre Visual Studio código e pergunta se você deseja instalar ou habilitar a extensão. Selecione "instalar".

Criar uma solução

Comece criando uma solução em branco para manter o projeto da biblioteca de classes. Uma solução Visual Studio serve como um contêiner para um ou mais projetos. Adicione projetos relacionados à mesma solução.

Para criar a solução em branco:

  1. Inicie Visual Studio.

  2. Na janela inicial, escolha Criar um novo projeto.

  3. Na página Criar um novo projeto , insira a solução na caixa de pesquisa. Escolha o modelo de solução em branco e, em seguida, escolha Avançar.

    Modelo de solução vazia no Visual Studio

  4. Na página Configurar seu novo projeto , insira ClassLibraryProjects na caixa de nome da solução . Em seguida, escolha Criar.

Comece criando um projeto de biblioteca de classes .NET chamado "StringLibrary" e uma solução associada. Uma solução serve como um contêiner para um ou mais projetos. Você adicionará projetos adicionais relacionados à mesma solução.

  1. Inicie Visual Studio Code.

  2. Vá para o modo de exibição Explorer e selecione Criate .NET Project. Como alternativa, você pode abrir a Paleta de Comandos usando Ctrl+Shift+P (Command+Shift+P no MacOS) e, em seguida, digitar ".NET" e localizar e selecionar o comando .NET: Novo Projeto.

  3. Escolha o modelo de projeto Biblioteca de Classes.

  4. Em seguida, selecione o local onde você deseja que o novo projeto seja criado: crie uma pasta chamada e selecione-a.

  5. Nomeie o projeto StringLibrary.

  6. Selecione .sln como o formato de arquivo da solução.

  7. Selecione Mostrar todas as opções de modelo.

  8. Em seguida, selecione .NET 10. Em seguida, selecione Criar Projeto.

  9. Na caixa de diálogo Confiar nos autores dos arquivos nesta pasta? Selecione Sim, confio nos autores. Você pode confiar nos autores porque essa pasta tem apenas arquivos gerados por .NET e adicionados ou modificados por você.

Comece criando um GitHub Codespace com o ambiente do tutorial e crie um projeto de biblioteca de classes .NET.

  1. Abra uma janela do navegador e navegue até o repositório do tutorial codespace.

  2. Selecione o botão Código verde e, em seguida, a guia Codespaces .

  3. Selecione o sinal ou o botão verde Criar Codespace na página principal para criar um novo Codespace usando esse ambiente.

    Criar um novo Codespace a partir do repositório de tutoriais

  4. Quando o codespace for carregado, abra o terminal e navegue até a pasta de tutoriais:

    cd tutorials
    
  5. Crie um novo projeto de biblioteca de classes:

    dotnet new classlib -n StringLibrary
    

Criar um projeto de biblioteca de classes

  1. Adicione um novo projeto de biblioteca de classes .NET chamado StringLibrary à solução.

    1. Clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione Add>New Project.

    2. Na página Adicionar um novo projeto , insira a biblioteca na caixa de pesquisa. Escolha C# ou Visual Basic na lista De idiomas e escolha As plataformas na lista Plataforma. Escolha o modelo da Biblioteca de Classes e escolha Avançar.

    3. Na página Configurar seu novo projeto , insira StringLibrary na caixa de nome do Projeto e, em seguida, escolha Avançar.

    4. Na página Additional information, selecione .NET 10 e escolha Create.

  2. Verifique se a biblioteca tem como destino a versão correta do .NET. Clique com o botão direito do mouse no projeto de biblioteca em Gerenciador de Soluções e selecione Properties. A caixa de texto Target Framework mostra que o projeto é destinado ao .NET 10.0.

  3. Se você estiver usando Visual Basic, limpe o texto na caixa de texto namespace padrão.

    Propriedades do projeto para a biblioteca de classes

    Para cada projeto, Visual Basic cria automaticamente um namespace que corresponde ao nome do projeto. Neste tutorial, você define um namespace de nível superior usando a palavra-chave no arquivo de código.

  4. Substitua o código na janela de código para Class1.cs ou Class1.vb pelo código a seguir e salve o arquivo. Se o idioma que você deseja usar não for mostrado, altere o seletor de idioma na parte superior da página.

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    
    Imports System.Runtime.CompilerServices
    
    Namespace UtilityLibraries
        Public Module StringLibrary
            <Extension>
            Public Function StartsWithUpper(str As String) As Boolean
                If String.IsNullOrWhiteSpace(str) Then
                    Return False
                End If
    
                Dim ch As Char = str(0)
                Return Char.IsUpper(ch)
            End Function
        End Module
    End Namespace
    

    A biblioteca de classes, , contém um método chamado . Esse método retorna um valor que indica se a instância de cadeia de caracteres atual começa com um caractere maiúsculo. O padrão Unicode distingue caracteres maiúsculos de caracteres minúsculos. O método retornará se um caractere estiver em letras maiúsculas.

    é implementado como um método de extensão para que você possa chamá-lo como se fosse um membro da classe. O ponto de interrogação () depois no código C# indica que a cadeia de caracteres pode ser nula.

  5. Na barra de menus, selecione CompilarCompilar Solução ou pressione CtrlShiftB para verificar se o projeto compila sem erros.

  1. O projeto é criado e Class1.cs é aberto.

  2. Substitua o conteúdo de Class1.cs pelo seguinte código:

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    

    A biblioteca de classes, , contém um método chamado . Esse método retorna um valor que indica se a instância de cadeia de caracteres atual começa com um caractere maiúsculo. O padrão Unicode distingue caracteres maiúsculos de caracteres minúsculos. O método retornará se um caractere estiver em letras maiúsculas.

    é implementado como um método de extensão para que você possa chamá-lo como se fosse um membro da classe.

  3. Salve o arquivo.

  4. Expanda Gerenciador de Soluções na parte inferior da exibição Explorer.

  5. Clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione Build ou abra a Paleta de Comandos e selecione .NET: Compilar para criar a solução e verificar se o projeto é compilado sem erros.

    A saída do terminal se parece com o exemplo a seguir:

      Determining projects to restore...
      All projects are up-to-date for restore.
      StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net10.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    
  1. Navegue até a pasta StringLibrary:

    cd StringLibrary
    
  2. Abra Class1.cs e substitua seu conteúdo pelo seguinte código:

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    

    A biblioteca de classes, , contém um método chamado . Esse método retorna um valor que indica se a instância de cadeia de caracteres atual começa com um caractere maiúsculo. O padrão Unicode distingue caracteres maiúsculos de caracteres minúsculos. O método retornará se um caractere estiver em letras maiúsculas.

    é implementado como um método de extensão para que você possa chamá-lo como se fosse um membro da classe.

  3. Salve o arquivo e crie o projeto:

    dotnet build
    

    O build deve ter êxito sem erros.

Adicionar um aplicativo de console à solução

Adicione um aplicativo de console que usa a biblioteca de classes. O aplicativo solicitará que o usuário insira uma cadeia de caracteres e relate se a cadeia de caracteres começa com um caractere maiúsculo.

  1. Adicione um novo aplicativo de console .NET chamado ShowCase à solução.

    1. Clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione Add>New Project.

    2. Na página Adicionar um novo projeto , insira o console na caixa de pesquisa. Escolha C# ou Visual Basic na lista De idiomas e escolha As plataformas na lista Plataforma.

    3. Escolha o modelo Aplicativo de Console e, em seguida, Avançar.

    4. Na página Configurar seu novo projeto , insira ShowCase na caixa de nome do Projeto . Em seguida, escolha Avançar.

    5. Na página Additional information, selecione .NET 10 na caixa Framework. Em seguida, escolha Criar.

  2. Na janela de código do arquivo Program.cs ou Program.vb , substitua todo o código pelo código a seguir.

    using System;
    using UtilityLibraries;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(input)) break;
        Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                          $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}");
        row += 3;
    } while (true);
    return;
    
    // Declare a ResetConsole local method
    void ResetConsole()
    {
        if (row > 0)
        {
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
        Console.Clear();
        Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
        row = 3;
    }
    
    Imports UtilityLibraries
    
    Module Program
        Dim row As Integer = 0
    
        Sub Main()
            Do
                If row = 0 OrElse row >= 25 Then ResetConsole()
    
                Dim input As String = Console.ReadLine()
                If String.IsNullOrEmpty(input) Then Return
    
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{If(input.StartsWithUpper(), "Yes", "No")} {Environment.NewLine}")
                row += 3
            Loop While True
        End Sub
    
        Private Sub ResetConsole()
            If row > 0 Then
                Console.WriteLine("Press any key to continue...")
                Console.ReadKey()
            End If   
            Console.Clear()
            Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}")
            row = 3  
        End Sub
    End Module
    

    O código usa a variável para manter uma contagem do número de linhas de dados gravadas na janela do console. Sempre que for maior ou igual a 25, o código limpa a janela do console e exibe uma mensagem para o usuário.

    O programa solicita que o usuário insira uma cadeia de caracteres. Indica se a cadeia de caracteres começa com um caractere maiúsculo. Se o usuário pressionar a tecla Enter sem inserir uma cadeia de caracteres, o aplicativo terminará e a janela do console será fechada.

  1. Clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione New Project ou, na Paleta de Comandos, selecione .NET: Novo Projeto.

  2. Selecione Aplicativo de Console.

  3. Dê a ele o nome ShowCase, selecione o diretório padrão e selecione Criar Projeto.

  4. Abra ShowCase/Program.cs e substitua todo o código pelo código a seguir.

    using System;
    using UtilityLibraries;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(input)) break;
        Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                          $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}");
        row += 3;
    } while (true);
    return;
    
    // Declare a ResetConsole local method
    void ResetConsole()
    {
        if (row > 0)
        {
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
        Console.Clear();
        Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
        row = 3;
    }
    

    O código usa a variável para manter uma contagem do número de linhas de dados gravadas na janela do console. Sempre que for maior ou igual a 25, o código limpa a janela do console e exibe uma mensagem para o usuário.

    O programa solicita que o usuário insira uma cadeia de caracteres. Indica se a cadeia de caracteres começa com um caractere maiúsculo. Se o usuário pressionar a tecla Enter sem inserir uma cadeia de caracteres, o aplicativo terminará e a janela do console será fechada.

  5. Salve suas alterações.

  1. Navegue de volta para a pasta de tutoriais e crie um novo aplicativo de console:

    cd ..
    dotnet new console -n ShowCase
    
  2. Abra ShowCase/Program.cs e substitua todo o código pelo seguinte código:

    using System;
    using UtilityLibraries;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(input)) break;
        Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                          $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}");
        row += 3;
    } while (true);
    return;
    
    // Declare a ResetConsole local method
    void ResetConsole()
    {
        if (row > 0)
        {
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
        Console.Clear();
        Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
        row = 3;
    }
    

    O código usa a variável para manter uma contagem do número de linhas de dados gravadas na janela do console. Sempre que for maior ou igual a 25, o código limpa a janela do console e exibe uma mensagem para o usuário.

    O programa solicita que o usuário insira uma cadeia de caracteres. Indica se a cadeia de caracteres começa com um caractere maiúsculo. Se o usuário pressionar a tecla Enter sem inserir uma cadeia de caracteres, o aplicativo terminará e a janela do console será fechada.

  3. Salve suas alterações.

Adicionar uma referência de projeto

Inicialmente, o novo projeto de aplicativo de console não tem acesso à biblioteca de classes. Para permitir que ele chame métodos na biblioteca de classes, crie uma referência de projeto para o projeto de biblioteca de classes.

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no nó ShowCaseDependências do projeto e selecione Adicionar Referência do Projeto.

    Adicionar menu de contexto de referência no Visual Studio

  2. Na caixa de diálogo Gerenciador de Referência , selecione o projeto StringLibrary e selecione OK.

    Caixa de diálogo Gerenciador de Referências com Biblioteca de Strings selecionada

  1. Em Gerenciador de Soluções clique com o botão direito do mouse no projeto ShowCase e selecione Add Project Reference.

  2. Selecione StringLibrary.

Dica

Como alternativa, adicione o seguinte a ShowCase.csproj:

<ItemGroup>
  <ProjectReference Include="..\StringLibrary\StringLibrary.csproj" />
</ItemGroup>

Adicione uma referência ao projeto StringLibrary do projeto ShowCase:

cd ShowCase
dotnet add reference ../StringLibrary/StringLibrary.csproj

Executar o aplicativo

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto ShowCase e selecione Set como Projeto de Inicialização no menu de contexto.

    Visual Studio menu de contexto do projeto para definir o projeto de inicialização

  2. Pressione CtrlF5 para compilar e executar o programa sem depuração.

  3. Experimente o programa inserindo cadeias de caracteres e pressionando Enter e pressione Enter para sair.

    Janela do console com ShowCase em execução

  1. Use a barra de menus superior para selecionar ExecutarExecutar sem depuração.

  2. Selecione C#.

  3. Selecione C#: ShowCase.

    Se você receber um erro informando que nenhum programa C# está carregado, feche a pasta que você abriu e abra a pasta . Em seguida, tente executar o aplicativo novamente.

  4. Experimente o programa inserindo cadeias de caracteres e pressionando Enter e pressione Enter para sair.

    A saída do terminal se parece com o exemplo a seguir:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    
  1. Execute o aplicativo ShowCase:

    dotnet run
    
  2. Experimente o programa inserindo cadeias de caracteres e pressionando Enter e pressione Enter para sair.

    A saída do terminal se parece com o exemplo a seguir:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    

Recursos adicionais

Recursos de limpeza

GitHub exclui automaticamente o Codespace após 30 dias de inatividade. Se você planeja explorar mais tutoriais nesta série, pode deixar o seu Codespace provisionado. Se você estiver pronto para visitar o site .NET para baixar o SDK do .NET, poderá excluir seu Codespace. Para excluir seu Codespace, abra uma janela do navegador e navegue até seus Codespaces. Você verá uma lista de seus codespaces na janela. Selecione os três pontos () na entrada do espaço de código do tutorial Learn. Em seguida, selecione "Excluir".

Próximas etapas

Neste tutorial, você criou uma biblioteca de classes. No próximo tutorial, você aprenderá a testar a biblioteca de classes por unidade.

Ou você pode ignorar o teste de unidade automatizado e aprender a compartilhar a biblioteca criando um pacote NuGet:

Ou saiba como publicar um aplicativo de console. Se você publicar o aplicativo de console da solução que criou neste tutorial, a biblioteca de classes o usará como um arquivo .dll .