Freigeben über


Lernprogramm: Erstellen einer .NET-Klassenbibliothek mit Visual Studio

In diesem Tutorial erstellen Sie eine einfache Klassenbibliothek, die eine einzelne Methode zur Behandlung von Zeichenfolgen enthält.

Eine Klassenbibliothek definiert Typen und Methoden, die von einer Anwendung aufgerufen werden. Wenn die Bibliothek auf .NET Standard 2.0 ausgerichtet ist, kann sie von jeder .NET-Implementierung (einschließlich .NET Framework) aufgerufen werden, die .NET Standard 2.0 unterstützt. Wenn die Bibliothek auf .NET 8 ausgerichtet ist, kann sie von einer beliebigen Anwendung aufgerufen werden, die auf .NET 8 ausgerichtet ist. Dieses Tutorial zeigt, wie man sich auf .NET 8 ausrichtet.

Wenn Sie eine Klassenbibliothek erstellen, können Sie sie als NuGet-Paket oder als Komponente verteilen, die mit der Anwendung gebündelt ist, die sie verwendet.

Voraussetzungen

Erstellen einer Lösung

Erstellen Sie zunächst eine leere Lösung, um das Klassenbibliotheksprojekt einzufügen. Eine Visual Studio-Projektmappe dient als ein Container für mindestens ein Projekt. Sie fügen der gleichen Projektmappe weitere verwandte Projekte hinzu.

So erstellen Sie die leere Lösung:

  1. Starten Sie Visual Studio.

  2. Im Startfenster wählen Sie Neues Projekt erstellenaus.

  3. Geben Sie auf der Seite Neues Projekt erstellen die Angabe Projektmappe in das Suchfeld ein. Wählen Sie die Vorlage Leere Projektmappe aus, und klicken Sie dann auf Weiter.

    Leere Projektmappe in Visual Studio

  4. Geben Sie auf der Seite Neues Projekt konfigurieren im Feld Projektmappenname den Namen ClassLibraryProjects ein. Wählen Sie dann Erstellen aus.

Erstellen eines Klassenbibliotheksprojekts

  1. Fügen Sie der Lösung ein neues .NET-Klassenbibliotheksprojekt namens "StringLibrary" hinzu.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie Hinzufügen>Neues Projekt aus.

    2. Geben Sie auf der Seite Neues Projekt hinzufügenlibrary in das Suchfeld ein. Wählen Sie C# oder Visual Basic in der Liste der Sprachen und dann in der Liste der Plattformen Alle Plattformen aus. Wählen Sie die Vorlage Klassenbibliothek aus, und klicken Sie dann auf Weiter.

    3. Geben Sie im auf der Seite Neues Projekt konfigurieren im Feld Projektname den Namen StringLibrary ein, und klicken Sie anschließend auf Weiter.

    4. Wählen Sie auf der Seite Zusätzliche Informationen die Option .NET 8 aus, und klicken Sie dann auf Erstellen.

  2. Stellen Sie sicher, dass die Bibliothek auf die richtige Version von .NET ausgerichtet ist. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Bibliotheksprojekt, und klicken Sie dann auf Eigenschaften. Das Textfeld Zielframework zeigt, dass .NET 8.0 als Ziel verwendet wird.

  3. Wenn Sie Visual Basic verwenden, löschen Sie den Text im Textfeld Stammnamespace.

    Projekteigenschaften für die Klassenbibliothek

    Für jedes Projekt erstellt Visual Basic automatisch einen Namespace, der dem Projektnamen entspricht. In diesem Tutorial definieren Sie einen Namespace auf oberster Ebene mithilfe des Schlüsselworts namespace in der Codedatei.

  4. Ersetzen Sie den Code im Codefenster für Class1.cs oder Class1.vb durch den folgenden Code, und speichern Sie die Datei. Wenn die sprache, die Sie verwenden möchten, nicht angezeigt wird, ändern Sie die Sprachauswahl oben auf der Seite.

    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
    

    Die Klassenbibliothek, UtilityLibraries.StringLibrary, enthält eine Methode mit dem Namen StartsWithUpper. Diese Methode gibt einen Boolean Wert zurück, der angibt, ob die aktuelle Zeichenfolgeninstanz mit einem Großbuchstaben beginnt. Der Unicode-Standard unterscheidet Großbuchstaben von Kleinbuchstaben. Die Methode Char.IsUpper(Char) gibt true zurück, wenn ein Zeichen ein Großbuchstabe ist.

    Die Methode StartsWithUpper wird als Erweiterungsmethode implementiert, damit sie wie ein Member der Klasse String aufgerufen werden kann. Das Fragezeichen (?) nach string im C#-Code gibt an, dass die Zeichenfolge null sein kann.

  5. Klicken Sie auf der Menüleiste auf Erstellen>Projektmappe erstellen, oder drücken Sie STRG+UMSCHALT+B, um zu bestätigen, dass das Projekt ohne Fehler kompiliert wird.

Hinzufügen einer Konsolen-App zur Lösung

Fügen Sie eine Konsolenanwendung hinzu, die die Klassenbibliothek verwendet. Die App fordert den Benutzer auf, eine Zeichenfolge einzugeben und zu melden, ob die Zeichenfolge mit einem Großbuchstaben beginnt.

  1. Fügen Sie der Lösung eine neue .NET-Konsolenanwendung namens "ShowCase" hinzu.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie Hinzufügen>Neues Projekt aus.

    2. Geben Sie auf der Seite Neues Projekt hinzufügen die Angabe Konsole in das Suchfeld ein. Wählen Sie C# oder Visual Basic in der Liste der Sprachen und dann in der Liste der Plattformen Alle Plattformen aus.

    3. Wählen Sie die Vorlage Konsolenanwendung aus, und klicken Sie dann auf Weiter.

    4. Geben Sie ShowCase auf der Seite Neues Projekt konfigurieren in das Feld Projektname ein. Klicken Sie dann auf Weiter.

    5. Wählen Sie auf der Seite Zusätzliche Informationen im Feld Zielframework die Option .NET 8 aus. Wählen Sie dann Erstellen aus.

  2. Ersetzen Sie im Codefenster für die Datei Program.cs oder Program.vb den gesamten Code durch den folgenden 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
    

    Der Code verwendet die row-Variable, um die Anzahl der in das Konsolenfenster geschriebenen Datenzeilen festzuhalten. Wenn er größer als oder gleich 25 ist, löscht der Code das Konsolenfenster und zeigt dem Benutzer eine Meldung an.

    Das Programm fordert den Benutzer auf, eine Zeichenfolge einzugeben. Es zeigt an, ob die Zeichenfolge mit einem Großbuchstaben beginnt. Wenn der Benutzer die Eingabetaste drückt, ohne eine Zeichenfolge einzugeben, endet die Anwendung und das Konsolenfenster wird geschlossen.

Hinzufügen eines Projektverweises

Zunächst hat das neue Konsolen-App-Projekt keinen Zugriff auf die Klassenbibliothek. Damit Methoden in der Klassenbibliothek aufgerufen werden können, erstellen Sie einen Projektverweis auf das Klassenbibliotheksprojekt.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Abhängigkeiten des ShowCase-Projekts, und wählen Sie Projektverweis hinzufügen aus.

    Kontextmenü „Verweis hinzufügen“ in Visual Studio

  2. Wählen Sie im Dialogfeld Verweis-Manager das Projekt StringLibrary und dann OK aus.

    Dialogfeld Dialogfeld „Verweis-Manager“ mit ausgewählter StringLibrary

Ausführen der App

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das ShowCase-Projekt, und wählen Sie Als Startprojekt festlegen aus.

    Visual Studio-Projektkontextmenü zum Festlegen des Startprojekts

  2. Drücken Sie STRG+F5-, um das Programm ohne Debugging zu kompilieren und auszuführen.

  3. Probieren Sie das Programm aus, indem Sie Zeichenfolgen eingeben und die Taste Enterdrücken, und drücken Sie dann die Taste Enter, um den Vorgang zu beenden.

    Konsolenfenster, in dem ShowCase ausgeführt wird

Weitere Ressourcen

Nächste Schritte

In diesem Tutorial haben Sie eine Klassenbibliothek erstellt. Im nächsten Tutorial werden Sie lernen, wie Sie die Klassenbibliothek einem Unit-Test unterziehen.

Sie können auch automatisierte Komponententests überspringen und erfahren, wie Sie die Bibliothek freigeben, indem Sie ein NuGet-Paket erstellen:

Oder erfahren Sie, wie Sie eine Konsolen-App veröffentlichen. Wenn Sie die Konsolen-App aus der Projektmappe veröffentlichen, die Sie in diesem Tutorial erstellt haben, wird die Klassenbibliothek als DLL-Datei veröffentlicht.