Tutorial: 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 die Typen und Methoden, die von einer Anwendung aufgerufen werden können. Wenn die Bibliothek auf .NET Standard 2.0 ausgelegt 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 5 ausgelegt ist, kann sie von jeder Anwendung aufgerufen werden, die auf .NET 5 ausgerichtet ist. In diesem Tutorial erfahren Sie, wie Sie .NET 5 als Zielversion verwenden.

Wenn Sie eine Klassenbibliothek erstellen, können Sie diese als NuGet-Paket oder als mit der zugehörigen Anwendung gebündelte Komponente ausliefern.

Voraussetzungen

Erstellen einer Projektmappe

Beginnen Sie, indem Sie eine leere Projektmappe erstellen, um das Klassenbibliotheksprojekt darin zu speichern. 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 eine leere Projektmappe:

  1. Starten Sie Visual Studio.

  2. Wählen Sie im Startfenster Neues Projekt erstellen aus.

  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.

    Vorlage „Leere Projektmappe“ in Visual Studio

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

Erstellen eines Klassenbibliotheksprojekts

  1. Fügen Sie ein neues .NET-Klassenbibliotheksprojekt namens „StringLibrary“ zur Projektmappe 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 library 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 5.0 (aktuell) aus, und klicken Sie dann auf Erstellen.

  2. Stellen Sie sicher, dass die Bibliothek die richtige Version von .NET als Ziel verwendet. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Bibliotheksprojekt, und klicken Sie dann auf Eigenschaften. Das Textfeld Zielframework zeigt dann, dass .NET 5.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 der obersten 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 gewünschte Sprache nicht angezeigt wird, ändern Sie die Sprachauswahl am oberen Rand 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 namens 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ß- und Kleinschreibung. 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.

  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 Projektmappe

Im Folgenden fügen Sie eine Konsolenanwendung hinzu, die die Klassenbibliothek verwendet. Die App fordert den Benutzer dazu auf, eine Zeichenfolge einzugeben, und meldet, ob die Zeichenfolge mit einem Großbuchstaben beginnt.

  1. Fügen Sie der Projektmappe eine neue .NET-Konsolenanwendung mit dem Namen „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. Wählen Sie anschließend Weiter aus.

    5. Wählen Sie auf der Seite Zusätzliche Informationen im Feld Zielframework die Option .NET 5.0 (aktuell) 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 sie mindestens 25 beträgt, löscht der Code das Konsolenfenster und zeigt eine Meldung für den Benutzer an.

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

Hinzufügen eines Projektverweises

Anfänglich besitzt das neue Konsolen-App-Projekt keinen Zugriff auf die Klassenbibliothek. Damit es Methoden in der Klassenbibliothek aufrufen kann, 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 „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 Debuggen zu kompilieren und auszuführen.

    Visual Studio-Projektsymbolleiste mit Schaltfläche „Debuggen“

  3. Testen Sie das Programm, indem Sie Zeichenfolgen eingeben und die EINGABETASTE drücken, und drücken Sie dann die EINGABETASTE, um das Programm zu beenden.

    Konsolenfenster, in dem ShowCase ausgeführt wird

Zusätzliche Ressourcen

Nächste Schritte

In diesem Tutorial haben Sie eine Klassenbibliothek erstellt. Im nächsten Tutorial erfahren Sie, wie Sie Komponententests für die Klassenbibliothek ausführen.

Alternativ können Sie die automatisierten Komponententests auch überspringen und sich damit beschäftigen, wie die Bibliothek durch Erstellen eines NuGet-Pakets freigegeben werden kann:

Stattdessen können Sie sich auch über das Veröffentlichen einer Konsolen-App informieren. 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.