Condividi tramite


Esercitazione: Creare una libreria di classi .NET

In questa esercitazione viene creata una semplice libreria di utilità che contiene un singolo metodo di gestione delle stringhe.

Una libreria di classi definisce tipi e metodi chiamati da un'applicazione. Se la libreria è destinata .NET Standard 2.0, può essere chiamata da qualsiasi implementazione .NET (incluso .NET Framework) che supporta .NET Standard 2.0. Se la libreria è destinata .NET 10, può essere chiamata da qualsiasi applicazione destinata .NET 10. Questa esercitazione illustra come impostare come destinazione .NET 10.

Quando si crea una libreria di classi, è possibile distribuirla come componente di terze parti o come componente in bundle con una o più applicazioni.

Prerequisiti

Istruzioni per l'installazione

Su Windows, utilizza questo file di configurazione WinGet per installare tutti i prerequisiti. Se è già installato un elemento, WinGet ignorerà questo passaggio.

  1. Scaricare il file e fare doppio clic per eseguirlo.
  2. Leggere il contratto di licenza, digitare ye selezionare Immettere quando viene richiesto di accettare.
  3. Se viene visualizzato un prompt di controllo dell'account utente lampeggiante nella barra delle applicazioni, consentire all'installazione di continuare.

In altre piattaforme è necessario installare ognuno di questi componenti separatamente.

  1. Scaricare il programma di installazione consigliato dalla pagina di download .NET SDK e fare doppio clic per eseguirlo. La pagina di download rileva la piattaforma e consiglia il programma di installazione più recente per la piattaforma.
  2. Scaricare il programma di installazione più recente dalla home page Visual Studio Code e fare doppio clic per eseguirlo. Questa pagina rileva anche la tua piattaforma e il collegamento dovrebbe essere corretto per il tuo sistema.
  3. Fare clic sul pulsante "Installa" nella pagina dell'estensione C# DevKit. Si apre Visual Studio Code e ti chiede se vuoi installare o abilitare l'estensione. Seleziona "install".

Creare una soluzione

Inizia creando una soluzione vuota per contenere il progetto di libreria di classi. Una soluzione Visual Studio funge da contenitore per uno o più progetti. Aggiungere progetti correlati alla stessa soluzione.

Per creare la soluzione vuota:

  1. Avviare Visual Studio.

  2. Nella finestra iniziale scegliere Crea un nuovo progetto.

  3. Nella pagina Crea un nuovo progetto inserisci soluzione nella casella di ricerca. Scegliere il modello Soluzione Vuota e quindi scegliere Avanti.

     Modello di Blank solution in Visual Studio

  4. Nella pagina Configura il nuovo progetto, inserisci ClassLibraryProjects nella casella denominata Nome soluzione. Scegliere quindi Crea.

Per iniziare, creare un progetto di libreria di classi .NET denominato "StringLibrary" e una soluzione associata. Una soluzione funge da contenitore per uno o più progetti. Si aggiungeranno altri progetti correlati alla stessa soluzione.

  1. Avvia Visual Studio Code.

  2. Passare alla visualizzazione Explorer e selezionare Crea .NET Project. In alternativa, è possibile visualizzare il riquadro comandi usando CTRL+MAIUSC+P (Comando+MAIUSC+P in MacOS) e quindi digitare ".NET" e trovare e selezionare il comando .NET: Nuovo progetto.

  3. Scegliere la libreria di classi del modello di progetto.

  4. Selezionare quindi il percorso in cui si vuole creare il nuovo progetto: Creare una cartella denominata e selezionarla.

  5. Denominare il progetto StringLibrary.

  6. Selezionare .sln come formato di file della soluzione.

  7. Selezionare Mostra tutte le opzioni del modello.

  8. Selezionare quindi .NET 10. Selezionare quindi Crea progetto.

  9. Nella finestra di dialogo Considera attendibili gli autori dei file in questa cartella? selezionare Sì, si considera attendibile gli autori. È possibile considerare attendibili gli autori perché questa cartella contiene solo i file generati da .NET e aggiunti o modificati dall'utente.

Per iniziare, crea un Codespace su GitHub con l'ambiente tutorial, poi crea un progetto di libreria di classi .NET.

  1. Aprire una finestra del browser e vai al repository dell'esercitazione codespace.

  2. Selezionare il pulsante codice verde e quindi la scheda Spazi di codice .

  3. Selezionare l'icona o il pulsante verde Crea spazio di codice su main per creare un nuovo spazio di codice usando questo ambiente.

    Creare un nuovo Codespace dal repository del tutorial

  4. Quando lo spazio di codice viene caricato, aprire il terminale e passare alla cartella tutorials:

    cd tutorials
    
  5. Creare un nuovo progetto di libreria di classi:

    dotnet new classlib -n StringLibrary
    

Creare un progetto di libreria di classi

  1. Aggiungere un nuovo progetto di libreria di classi .NET denominato StringLibrary alla soluzione.

    1. Fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e selezionare Aggiungi>Nuovo progetto.

    2. Nella pagina Aggiungi un nuovo progetto, immettere library nella casella di ricerca. Scegliere C# o Visual Basic dall'elenco Lingua e quindi scegliere Tutte le piattaforme dall'elenco Piattaforma. Scegliere il modello Libreria di classi e quindi scegliere Avanti.

    3. Nella pagina Configura il nuovo progetto, inserire StringLibrary nella casella Nome progetto, poi scegliere Avanti.

    4. Nella pagina Informazioni aggiuntive selezionare .NET 10 e quindi scegliere Crea.

  2. Verificare che la libreria sia destinata alla versione corretta di .NET. Fare clic con il pulsante destro del mouse sul progetto di libreria in Esplora soluzioni e quindi selezionare Properties. La casella di testo Target Framework mostra che il progetto è destinato .NET 10.0.

  3. Se si usa Visual Basic, deselezionare il testo nella casella di testo Default namespace.

    Proprietà del progetto per la libreria di classi

    Per ogni progetto, Visual Basic crea automaticamente uno spazio dei nomi corrispondente al nome del progetto. In questa esercitazione si definisce uno spazio dei nomi di primo livello usando la parola chiave nel file di codice.

  4. Sostituire il codice nella finestra del codice per Class1.cs o Class1.vb con il codice seguente e salvare il file. Se la lingua da usare non viene visualizzata, modificare il selettore di lingua nella parte superiore della pagina.

    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
    

    La libreria di classi, , contiene un metodo denominato . Questo metodo restituisce un valore che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai caratteri minuscoli. Il metodo restituisce se un carattere è maiuscolo.

    viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse un membro della classe . Il punto interrogativo () dopo nel codice C# indica che la stringa può essere Null.

  5. Nella barra dei menu, selezionare BuildBuild Solution oppure premere CtrlShiftB per verificare che il progetto venga compilato senza errori.

  1. Il progetto viene creato e Class1.cs si apre.

  2. Sostituire il contenuto di Class1.cs con il codice seguente:

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

    La libreria di classi, , contiene un metodo denominato . Questo metodo restituisce un valore che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai caratteri minuscoli. Il metodo restituisce se un carattere è maiuscolo.

    viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse un membro della classe .

  3. Salva il file.

  4. Espandere Esplora soluzioni nella parte inferiore della visualizzazione Explorer.

  5. Fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e selezionare Build oppure aprire il riquadro comandi e selezionare .NET: Build per compilare la soluzione e verificare che il progetto venga compilato senza errori.

    L'output del terminale è simile all'esempio seguente:

      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. Passare alla cartella StringLibrary:

    cd StringLibrary
    
  2. Aprire Class1.cs e sostituirne il contenuto con il codice seguente:

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

    La libreria di classi, , contiene un metodo denominato . Questo metodo restituisce un valore che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai caratteri minuscoli. Il metodo restituisce se un carattere è maiuscolo.

    viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse un membro della classe .

  3. Salvare il file e compilare il progetto:

    dotnet build
    

    La build dovrebbe avere esito positivo senza errori.

Aggiungere un'app console alla soluzione

Aggiungere un'applicazione console che usa la libreria di classi. L'app chiederà all'utente di immettere una stringa e di segnalare se la stringa inizia con un carattere maiuscolo.

  1. Aggiungere una nuova applicazione console .NET denominata ShowCase alla soluzione.

    1. Fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e selezionare Aggiungi>Nuovo progetto.

    2. Nella pagina Aggiungi un nuovo progetto, immettere console nella casella di ricerca. Scegliere C# o Visual Basic dall'elenco Lingua e quindi scegliere Tutte le piattaforme dall'elenco Piattaforma.

    3. Scegliere il modello di app console e quindi scegliere Avanti.

    4. Nella pagina Configura il tuo nuovo progetto, inserisci ShowCase nella casella Nome progetto. Scegliere quindi Avanti.

    5. Nella pagina Informazioni aggiuntive selezionare .NET 10 nella casella Framework. Scegliere quindi Crea.

  2. Nella finestra del codice per il file Program.cs o Program.vb sostituire tutto il codice con il codice seguente.

    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
    

    Il codice usa la variabile per mantenere un conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.

    Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.

  1. Fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e selezionare Nuovo progetto oppure nel riquadro comandi selezionare .NET: Nuovo progetto.

  2. Selezionare Applicazione console.

  3. Assegnare il nome ShowCase, selezionare la directory predefinita e selezionare Crea progetto.

  4. Aprire ShowCase/Program.cs e sostituire tutto il codice con il codice seguente.

    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;
    }
    

    Il codice usa la variabile per mantenere un conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.

    Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.

  5. Salvare le modifiche.

  1. Tornare alla cartella tutorials e creare una nuova app console:

    cd ..
    dotnet new console -n ShowCase
    
  2. Aprire ShowCase/Program.cs e sostituire tutto il codice con il codice seguente:

    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;
    }
    

    Il codice usa la variabile per mantenere un conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.

    Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.

  3. Salvare le modifiche.

Aggiungere un riferimento al progetto

Inizialmente, il nuovo progetto di app console non ha accesso alla libreria di classi. Per consentire al programma di chiamare i metodi nella libreria di classi, creare un riferimento al progetto della libreria di classi.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo delle Dipendenze del progetto e selezionare Aggiungi riferimento al progetto.

    Aggiungi menu di scelta rapida di riferimento in Visual Studio

  2. Nella finestra di dialogo Gestione riferimenti selezionare il progetto StringLibrary e selezionare OK.

    finestra di dialogo Gestione Riferimenti con la StringLibrary selezionata

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ShowCase e selezionare Aggiungi riferimento al progetto.

  2. Selezionare StringLibrary.

Suggerimento

In alternativa, aggiungere quanto segue a ShowCase.csproj:

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

Aggiungere un riferimento al progetto StringLibrary dal progetto ShowCase:

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

Eseguire l'app

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ShowCase e scegliere Set as StartUp Project nel menu di scelta rapida.

    Visual Studio menu di scelta rapida del progetto per impostare il progetto di avvio

  2. Premere CTRLF5 per compilare ed eseguire il programma senza eseguire il debug.

  3. Provare il programma immettendo stringhe e premendo il tasto INVIO, quindi premere il tasto INVIO per uscire.

    Finestra di console con ShowCase in esecuzione

  1. Usare la barra dei menu in alto per selezionare Eseguisenza eseguire il debug.

  2. Selezionare C#.

  3. Selezionare C#: ShowCase.

    Se viene visualizzato un errore che indica che non viene caricato alcun programma C#, chiudere la cartella aperta e aprire la cartella . Provare quindi a eseguire di nuovo l'app.

  4. Provare il programma immettendo stringhe e premendo il tasto INVIO, quindi premere il tasto INVIO per uscire.

    L'output del terminale è simile all'esempio seguente:

    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. Eseguire l'app ShowCase:

    dotnet run
    
  2. Provare il programma immettendo stringhe e premendo il tasto INVIO, quindi premere il tasto INVIO per uscire.

    L'output del terminale è simile all'esempio seguente:

    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
    

Risorse aggiuntive

Risorse di pulizia

GitHub elimina automaticamente codespace dopo 30 giorni di inattività. Se hai intenzione di esplorare altre esercitazioni in questa serie, puoi mantenere attivo il tuo Codespace. Se si è pronti per visitare il sito .NET per scaricare .NET SDK, è possibile eliminare codespace. Per eliminare Codespace, aprire una finestra del browser e passare a Codespaces. Nella finestra viene visualizzato un elenco degli spazi di codice. Selezionare i tre puntini () nella voce dello spazio di codice del tutorial Learn. Selezionare quindi "Elimina".

Passaggi successivi

In questa esercitazione, avete creato una libreria di classi. Nell'esercitazione successiva apprenderai come eseguire gli unit test della libreria di classi.

In alternativa, è possibile ignorare gli unit test automatizzati e imparare a condividere la libreria creando un pacchetto NuGet:

In alternativa, informazioni su come pubblicare un'app console. Pubblicando l'applicazione console dalla soluzione creata in questo tutorial, la libreria di classi viene inclusa come file .dll.