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
Visual Studio 2022 met de .NET-desktopontwikkeling workload geïnstalleerd. De .NET 8 SDK wordt automatisch geïnstalleerd wanneer u deze workload selecteert.
Zie De .NET SDK installeren met Visual Studiovoor meer informatie.
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:
Start Visual Studio.
Kies in het startvenster Een nieuw project maken.
Op de pagina Maak een nieuw project aan, voert u oplossing in het zoekvak in. Kies de sjabloon Lege oplossing en kies vervolgens Volgende.
Op de pagina Uw nieuwe project configureren voert u ClassLibraryProjects in het vak Naam van de oplossing in. Kies vervolgens maken.
Een klassebibliotheekproject maken
Voeg een nieuw .NET-klassebibliotheekproject met de naam StringLibrary toe aan de oplossing.
Klik met de rechtermuisknop op de oplossing in Solution Explorer- en selecteer >Nieuw project toevoegen.
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.
Op de pagina Je nieuwe project configureren voer je StringLibrary in het vak Projectnaam in en kies je volgende.
Selecteer op de pagina Aanvullende informatie.NET 8, en kies vervolgens Maken.
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.
Als u Visual Basic gebruikt, wist de tekst in het Hoofdnaamruimte tekstvak.
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.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 naamStartsWithUpper
. 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) retourneerttrue
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 (?
) nastring
in de C#-code geeft aan dat de tekenreeks null kan zijn.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.
Voeg een nieuwe .NET-consoletoepassing met de naam ShowCase toe aan de oplossing.
Klik met de rechtermuisknop op de oplossing in Solution Explorer- en selecteer Add>New project.
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.
Kies de Consoleapplicatie sjabloon en kies vervolgens Volgende.
Voer op de pagina Configureer uw nieuwe projectShowCase in het vak Projectnaam in. Kies vervolgens Volgende.
Selecteer op de pagina Aanvullende informatie.NET 8- in het vak Framework. Kies vervolgens Maken.
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.
Klik in Solution Explorermet de rechtermuisknop op het knooppunt Dependencies van het
ShowCase
project, en kies vervolgens Projectverwijzing toevoegen.Selecteer in het dialoogvenster Reference Manager het project StringLibrary en selecteer OK.
De app uitvoeren
Klik in Solution Explorer-met de rechtermuisknop op het project ShowCase en selecteer Instellen als opstartproject in het snelmenu.
Druk op Ctrl+F5- om het programma te compileren en uit te voeren zonder foutopsporing.
Probeer het programma uit door tekenreeksen in te voeren en op Enter-te drukken en druk vervolgens op Enter- om af te sluiten.
Aanvullende informatiebronnen
- Bibliotheken ontwikkelen met de .NET CLI-
- .NET Standard-versies en de platforms die ze ondersteunen.
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.