Delen via


Zelfstudie: Een .NET-klassebibliotheek maken met Visual Studio

In deze zelfstudie maakt u een eenvoudige klassebibliotheek die één methode voor het verwerken van tekenreeksen bevat.

Een klassebibliotheek definieert typen en methoden die worden aangeroepen door een toepassing. Als de bibliotheek is gericht op .NET Standard 2.0, kan deze worden aangeroepen door elke .NET-implementatie (inclusief .NET Framework) die ondersteuning biedt voor .NET Standard 2.0. Als de bibliotheek is gericht op .NET 8, kan deze worden aangeroepen door elke toepassing die is gericht op .NET 8. Deze zelfstudie laat zien hoe u .NET 8 kunt targeten.

Wanneer u een klassebibliotheek maakt, kunt u deze distribueren als een NuGet-pakket of als onderdeel dat is gebundeld met de toepassing die deze gebruikt.

Voorwaarden

Een oplossing maken

Begin met het maken van een lege oplossing om het klassebibliotheekproject in te zetten. Een Visual Studio-oplossing fungeert als een container voor een of meer projecten. U voegt extra gerelateerde projecten toe aan dezelfde oplossing.

Om de lege oplossing te maken:

  1. Start Visual Studio.

  2. Kies in het startvenster Een nieuw project maken.

  3. Op de pagina Maak een nieuw project aan, voert u oplossing in het zoekvak in. Kies de sjabloon Lege oplossing en kies vervolgens Volgende.

    lege oplossingssjabloon in Visual Studio

  4. Op de pagina Uw nieuwe project configureren voert u ClassLibraryProjects in het vak Naam van de oplossing in. Kies vervolgens maken.

Een klassebibliotheekproject maken

  1. Voeg een nieuw .NET-klassebibliotheekproject met de naam StringLibrary toe aan de oplossing.

    1. Klik met de rechtermuisknop op de oplossing in Solution Explorer- en selecteer >Nieuw project toevoegen.

    2. Voer op de pagina Een nieuw project toevoegen in het zoekvak bibliotheek in. Kies C# of Visual Basic in de lijst Taal en kies vervolgens Alle platforms in de lijst Platform. Kies de klassebibliotheek sjabloon en kies vervolgens Volgende.

    3. Op de pagina Je nieuwe project configureren voer je StringLibrary in het vak Projectnaam in en kies je volgende.

    4. Selecteer op de pagina Aanvullende informatie.NET 8, en kies vervolgens Maken.

  2. Controleer of de bibliotheek is gericht op de juiste versie van .NET. Klik met de rechtermuisknop op het bibliotheekproject in Solution Explorer-en selecteer Eigenschappen. In het tekstvak Target Framework ziet u dat het project is gericht op .NET 8.0.

  3. Als u Visual Basic gebruikt, wist de tekst in het Hoofdnaamruimte tekstvak.

    Project-eigenschappen voor de klassebibliotheek

    Voor elk project maakt Visual Basic automatisch een naamruimte die overeenkomt met de projectnaam. In deze zelfstudie definieert u een naamruimte op het hoogste niveau met behulp van het trefwoord namespace in het codebestand.

  4. Vervang de code in het codevenster voor Class1.cs of Class1.vb door de volgende code en sla het bestand op. Als de taal die u wilt gebruiken niet wordt weergegeven, wijzigt u de taalkiezer boven aan de pagina.

    using System;
    
    namespace UtilityLibraries
    {
        public static class StringLibrary
        {
            public static bool StartsWithUpper(this string str)
            {
                if (string.IsNullOrWhiteSpace(str))
                    return false;
    
                char ch = str[0];
                return char.IsUpper(ch);
            }
        }
    }
    
    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
    

    De klassebibliotheek, UtilityLibraries.StringLibrary, bevat een methode met de naam StartsWithUpper. Deze methode retourneert een Boolean-waarde die aangeeft of het huidige tekenreeks begint met een hoofdletter. De Unicode-standaard onderscheidt hoofdletters van kleine letters. De methode Char.IsUpper(Char) retourneert true als een teken hoofdletters bevat.

    StartsWithUpper wordt geïmplementeerd als een extensiemethode, zodat u deze kunt aanroepen alsof deze lid is van de String-klasse. Het vraagteken (?) na string in de C#-code geeft aan dat de tekenreeks null kan zijn.

  5. Selecteer in de menubalk Build>Build Solution of druk op Ctrl+Shift+B om te controleren of het project zonder fouten wordt gecompileerd.

Een console-app toevoegen aan de oplossing

Voeg een consoletoepassing toe die gebruikmaakt van de klassebibliotheek. De app vraagt de gebruiker om een tekenreeks in te voeren en te rapporteren of de tekenreeks begint met een hoofdletter.

  1. Voeg een nieuwe .NET-consoletoepassing met de naam ShowCase toe aan de oplossing.

    1. Klik met de rechtermuisknop op de oplossing in Solution Explorer- en selecteer Add>New project.

    2. Voer op de pagina Een nieuw project toevoegen console in het zoekvak in. Kies C# of Visual Basic in de lijst Taal en kies vervolgens Alle platforms in de lijst Platform.

    3. Kies de Consoleapplicatie sjabloon en kies vervolgens Volgende.

    4. Voer op de pagina Configureer uw nieuwe projectShowCase in het vak Projectnaam in. Kies vervolgens Volgende.

    5. Selecteer op de pagina Aanvullende informatie.NET 8- in het vak Framework. Kies vervolgens Maken.

  2. Vervang in het codevenster voor het bestand Program.cs of Program.vb alle code door de volgende code.

    using System;
    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                    ResetConsole();
    
                string? input = Console.ReadLine();
                if (string.IsNullOrEmpty(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
    

    De code maakt gebruik van de row variabele voor het bijhouden van het aantal rijen met gegevens dat naar het consolevenster is geschreven. Wanneer dit groter is dan of gelijk is aan 25, wordt het consolevenster gewist en wordt een bericht aan de gebruiker getoond.

    Het programma vraagt de gebruiker om een tekenreeks in te voeren. Hiermee wordt aangegeven of de tekenreeks begint met een hoofdletter. Als de gebruiker op de Enter-toets drukt zonder een tekenreeks in te voeren, wordt de toepassing beëindigd en wordt het consolevenster gesloten.

Een projectreferentie toevoegen

In eerste instantie heeft het nieuwe console-app-project geen toegang tot de klassebibliotheek. Als u wilt toestaan dat methoden in de klassebibliotheek worden aangeroepen, maakt u een projectreferentie naar het klassebibliotheekproject.

  1. Klik in Solution Explorermet de rechtermuisknop op het knooppunt Dependencies van het ShowCase project, en kies vervolgens Projectverwijzing toevoegen.

    Contextmenu verwijzing toevoegen in Visual Studio

  2. Selecteer in het dialoogvenster Reference Manager het project StringLibrary en selecteer OK.

    dialoogvenster Reference Manager met StringLibrary geselecteerd

De app uitvoeren

  1. Klik in Solution Explorer-met de rechtermuisknop op het project ShowCase en selecteer Instellen als opstartproject in het snelmenu.

    contextmenu van Visual Studio-project om het opstartproject in te stellen

  2. Druk op Ctrl+F5- om het programma te compileren en uit te voeren zonder foutopsporing.

  3. Probeer het programma uit door tekenreeksen in te voeren en op Enter-te drukken en druk vervolgens op Enter- om af te sluiten.

    Consolevenster waarin ShowCase wordt uitgevoerd

Aanvullende informatiebronnen

Volgende stappen

In deze handleiding hebt u een klassebibliotheek gemaakt. In de volgende tutorial leert u hoe u de classbibliotheek te testen.

U kunt ook geautomatiseerde eenheidstests overslaan en leren hoe u de bibliotheek deelt door een NuGet-pakket te maken:

Of leer hoe u een console-app publiceert. Als u de console-app publiceert op basis van de oplossing die u in deze handleiding hebt gemaakt, wordt de klassebibliotheek samen ermee als een .dll-bestand meegeleverd.