Sdílet prostřednictvím


Kurz: Vytvoření knihovny tříd .NET

V tomto kurzu vytvoříte jednoduchou knihovnu nástrojů, která obsahuje jednu metodu zpracování řetězců.

Knihovna tříd definuje typy a metody volané aplikací. Pokud knihovna cílí na .NET Standard 2.0, může ji volat jakákoli .NET implementace (včetně .NET Framework), která podporuje .NET Standard 2.0. Pokud knihovna cílí na .NET 10, může ji volat libovolná aplikace, která cílí .NET 10. V tomto kurzu se dozvíte, jak cílit na .NET 10.

Když vytvoříte knihovnu tříd, můžete ji distribuovat jako komponentu třetí strany nebo jako součást se sadou s jednou nebo více aplikacemi.

Předpoklady

Pokyny k instalaci

Ve Windows použijte tento WinGet konfigurační soubor k instalaci všech požadavků. Pokud už máte něco nainstalovaného, WinGet tento krok přeskočí.

  1. Stáhněte soubor a poklikáním ho spusťte.
  2. Přečtěte si licenční smlouvu, zadejte ya po zobrazení výzvy k přijetí vyberte Enter.
  3. Pokud se na hlavním panelu zobrazí výzva řízení uživatelských účtů (UAC), povolte instalaci pokračovat.

Na jiných platformách je potřeba nainstalovat každou z těchto komponent samostatně.

  1. Stáhněte si doporučený instalační program ze stránky pro stažení sady .NET SDK a poklikáním ho spusťte. Stránka pro stažení zjistí vaši platformu a doporučí nejnovější instalační program pro vaši platformu.
  2. Stáhněte si nejnovější instalační program z domovské stránky Visual Studio Code a poklikáním ho spusťte. Tato stránka také zjistí vaši platformu a odkaz by měl být pro váš systém správný.
  3. Na stránce rozšíření C# DevKit klikněte na tlačítko Nainstalovat. Tím se otevře Visual Studio kód a zobrazí se dotaz, jestli chcete rozšíření nainstalovat nebo povolit. Vyberte "nainstalovat".

Vytvoření řešení

Začněte vytvořením prázdného řešení pro uložení projektu knihovny tříd. Řešení Visual Studio slouží jako kontejner pro jeden nebo více projektů. Přidejte do stejného řešení související projekty.

Pro vytvoření prázdného řešení:

  1. Spusťte Visual Studio.

  2. V úvodním okně zvolte Vytvořit nový projekt.

  3. Na stránce Vytvořit nový projekt zadejte do vyhledávacího pole řešení. Zvolte šablonu Prázdné řešení a poté zvolte Další.

    Prázdná šablona řešení v aplikaci Visual Studio

  4. Na stránce Konfigurovat nový projekt zadejte ClassLibraryProjects do pole Název řešení . Pak zvolte Vytvořit.

Začněte vytvořením projektu knihovny tříd .NET s názvem StringLibrary a přidruženým řešením. Řešení slouží jako kontejner pro jeden nebo více projektů. Do stejného řešení přidáte další související projekty.

  1. Spusťte Visual Studio Code.

  2. Přejděte do zobrazení Průzkumníka a vyberte Vytvořit .NET projekt. Případně můžete paletu příkazů vyvolat pomocí ctrl+Shift+P (Command+Shift+P v macOS) a pak zadat ".NET" a najít a vybrat .NET: Příkaz Nový projekt.

  3. Zvolte šablonu projektu Knihovna tříd.

  4. Pak vyberte umístění, kam chcete vytvořit nový projekt: Vytvořte složku s názvem ClassLibraryProjects a vyberte ji.

  5. Pojmenujte projekt StringLibrary.

  6. Jako formát souboru řešení vyberte .sln .

  7. Vyberte Zobrazit všechny možnosti šablony.

  8. Pak vyberte .NET 10. Pak vyberte Vytvořit projekt.

  9. V dialogovém okně Důvěřujete autorům souborů v této složce? Vyberte Ano, důvěřuji autorům. Autorům můžete důvěřovat, protože tato složka obsahuje jenom soubory vygenerované .NET a přidané nebo upravené vámi.

Začněte vytvořením GitHub Codespace s prostředím kurzu a pak vytvořte projekt knihovny tříd .NET.

  1. Otevřete okno prohlížeče a přejděte do úložiště tutorial codespace.

  2. Vyberte zelené tlačítko Kód a pak kartu Codespaces .

  3. Výběrem znaménka + nebo zeleného create codespace na hlavním tlačítku vytvořte nový Codespace pomocí tohoto prostředí.

    Vytvoření nového Codespace z úložiště kurzů

  4. Když se váš codespace načte, otevřete terminál a přejděte do složky tutorials:

    cd tutorials
    
  5. Vytvořte nový projekt knihovny tříd:

    dotnet new classlib -n StringLibrary
    

Vytvořte projekt knihovny tříd

  1. Do řešení přidejte nový projekt knihovny tříd .NET s názvem StringLibrary.

    1. Klikněte pravým tlačítkem na řešení v Solution Explorer a vyberte Přidat>Nový projekt.

    2. Na stránce Přidat nový projekt zadejte do vyhledávacího pole knihovnu . V seznamu Jazyků zvolte C# nebo Visual Basic a pak v seznamu Platformy zvolte Všechny platformy. Zvolte šablonu Knihovna tříd a pak zvolte Další.

    3. Na stránce Konfigurovat nový projekt zadejte StringLibrary do pole Název projektu a pak zvolte Další.

    4. Na stránce Přidatné informace vyberte .NET 10 a pak zvolte Create.

  2. Zkontrolujte, jestli knihovna cílí na správnou verzi .NET. Pravým tlačítkem myši klikněte na projekt knihovny v Solution Explorer a pak vyberte Properties. Textové pole Target Framework ukazuje, že projekt cílí .NET 10.0.

  3. Pokud používáte Visual Basic, vymažte text v textovém poli Default.

    Vlastnosti projektu pro knihovnu tříd

    Pro každý projekt Visual Basic automaticky vytvoří obor názvů, který odpovídá názvu projektu. V tomto kurzu definujete obor názvů nejvyšší úrovně pomocí klíčového namespace slova v souboru kódu.

  4. Nahraďte kód v okně kódu pro Class1.cs nebo Class1.vb následujícím kódem a soubor uložte. Pokud se jazyk, který chcete použít, nezobrazuje, změňte výběr jazyka v horní části stránky.

    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
    

    Knihovna tříd, UtilityLibraries.StringLibrary, obsahuje metodu nazvanou StartsWithUpper. Tato metoda vrátí hodnotu Boolean, která označuje, zda aktuální instance řetězce začíná velkými písmeny. Standard Unicode rozlišuje velká písmena od malých písmen. Metoda Char.IsUpper(Char) vrátí true, pokud je znak velkými písmeny.

    StartsWithUpper se implementuje jako metoda rozšíření , abyste ji mohli volat, jako by byla členem třídy String. Otazník (?) za string kódem jazyka C# označuje, že řetězec může mít hodnotu null.

  5. Na řádku nabídek vyberte Sestavit>Sestavit řešení nebo stiskněte Ctrl+Shift+B k ověření, že se projekt zkompiluje bez chyby.

  1. Projekt se vytvoří a Class1.cs se otevře.

  2. Obsah Class1.cs nahraďte následujícím kódem:

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

    Knihovna tříd, UtilityLibraries.StringLibrary, obsahuje metodu nazvanou StartsWithUpper. Tato metoda vrátí hodnotu Boolean, která označuje, zda aktuální instance řetězce začíná velkými písmeny. Standard Unicode rozlišuje velká písmena od malých písmen. Metoda Char.IsUpper(Char) vrátí true, pokud je znak velkými písmeny.

    StartsWithUpper se implementuje jako metoda rozšíření , abyste ji mohli volat, jako by byla členem třídy String.

  3. Uložte soubor.

  4. Rozbalte Solution Explorer v dolní části zobrazení Explorer.

  5. Klikněte pravým tlačítkem na řešení v Solution Explorer a vyberte Build nebo otevřete paletu příkazů a vyberte .NET: Sestavení a ověřte, že se projekt zkompiluje bez chyby.

    Výstup terminálu vypadá jako v následujícím příkladu:

      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. Přejděte do složky StringLibrary:

    cd StringLibrary
    
  2. Otevřete Class1.cs a nahraďte jeho obsah následujícím kódem:

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

    Knihovna tříd, UtilityLibraries.StringLibrary, obsahuje metodu nazvanou StartsWithUpper. Tato metoda vrátí hodnotu Boolean, která označuje, zda aktuální instance řetězce začíná velkými písmeny. Standard Unicode rozlišuje velká písmena od malých písmen. Metoda Char.IsUpper(Char) vrátí true, pokud je znak velkými písmeny.

    StartsWithUpper se implementuje jako metoda rozšíření , abyste ji mohli volat, jako by byla členem třídy String.

  3. Uložte soubor a sestavte projekt:

    dotnet build
    

    Sestavení by mělo proběhnout úspěšně bez chyb.

Přidání konzolové aplikace do řešení

Přidejte konzolovou aplikaci, která používá knihovnu tříd. Aplikace vyzve uživatele, aby zadal řetězec a nahlásil, jestli řetězec začíná velkými písmeny.

  1. Do řešení přidejte novou konzolovou aplikaci .NET s názvem ShowCase.

    1. Klikněte pravým tlačítkem na řešení v Solution Explorer a vyberte Přidat>Nový projekt.

    2. Na stránce Přidat nový projekt zadejte do vyhledávacího pole konzolu . V seznamu Jazyků zvolte C# nebo Visual Basic a pak v seznamu Platformy zvolte Všechny platformy.

    3. Zvolte šablonu konzolové aplikace a pak zvolte Další.

    4. Na stránce Konfigurovat nový projekt zadejte do pole Název projektushowCase. Pak zvolte Další.

    5. Na stránce Přidatné informace vyberte .NET 10 v poli Framework. Pak zvolte Vytvořit.

  2. V okně kódu souboru Program.cs nebo Program.vb nahraďte veškerý kód následujícím kódem.

    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
    

    Kód používá proměnnou row k udržování počtu řádků dat zapsaných do okna konzoly. Kdykoli je větší nebo rovna 25, kód vymaže okno konzoly a zobrazí uživateli zprávu.

    Program vyzve uživatele k zadání textu. Určuje, zda řetězec začíná velkým písmenem. Pokud uživatel stiskne klávesu Enter bez zadání řetězce, aplikace skončí a okno konzoly se zavře.

  1. Klikněte pravým tlačítkem na řešení v Solution Explorer a vyberte Nový projekt nebo v paletě příkazů vyberte .NET: Nový projekt.

  2. Vyberte konzolovou aplikaci.

  3. Pojmenujte showCase, vyberte výchozí adresář a vyberte Vytvořit projekt.

  4. Otevřete ShowCase/Program.cs a nahraďte veškerý kód následujícím kódem.

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

    Kód používá proměnnou row k udržování počtu řádků dat zapsaných do okna konzoly. Kdykoli je větší nebo rovna 25, kód vymaže okno konzoly a zobrazí uživateli zprávu.

    Program vyzve uživatele k zadání textu. Určuje, zda řetězec začíná velkým písmenem. Pokud uživatel stiskne klávesu Enter bez zadání řetězce, aplikace skončí a okno konzoly se zavře.

  5. Uložte provedené změny.

  1. Vraťte se do složky kurzů a vytvořte novou konzolovou aplikaci:

    cd ..
    dotnet new console -n ShowCase
    
  2. Otevřete ShowCase/Program.cs a nahraďte veškerý kód následujícím kódem:

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

    Kód používá proměnnou row k udržování počtu řádků dat zapsaných do okna konzoly. Kdykoli je větší nebo rovna 25, kód vymaže okno konzoly a zobrazí uživateli zprávu.

    Program vyzve uživatele k zadání textu. Určuje, zda řetězec začíná velkým písmenem. Pokud uživatel stiskne klávesu Enter bez zadání řetězce, aplikace skončí a okno konzoly se zavře.

  3. Uložte provedené změny.

Přidání odkazu na projekt

Nový projekt konzolové aplikace zpočátku nemá přístup k knihovně tříd. Pokud chcete povolit volání metod v knihovně tříd, vytvořte odkaz na projekt knihovny tříd.

  1. V Solution Explorer klikněte pravým tlačítkem na uzel ShowCase projekt Dependencies a vyberte Přidat referenční informace k projektu.

    Přidat místní nabídku odkazu ve Visual Studiu

  2. V dialogovém okně Správce odkazů vyberte projekt StringLibrary a vyberte OK.

    Dialogové okno Správce odkazů s vybranou možností StringLibrary

  1. V Solution Explorer klikněte pravým tlačítkem na projekt ShowCase a vyberte Přidat odkaz na projekt.

  2. Vyberte StringLibrary.

Návod

Případně přidejte následující položky do souboru ShowCase.csproj:

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

Přidejte odkaz na projekt StringLibrary z projektu ShowCase:

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

Spuštění aplikace

  1. V Solution Explorer klikněte pravým tlačítkem na projekt ShowCase a v místní nabídce vyberte Set as StartUp Project.

    Kontextová nabídka projektu ve Visual Studio pro nastavení spouštěcího projektu

  2. Stisknutím kláves Ctrl+F5 zkompilujte a spusťte program bez ladění.

  3. Vyzkoušejte program zadáním řetězců a stisknutím klávesy Entera stisknutím klávesy Enter ukončete.

    Okno konzoly se spuštěním ShowCase

  1. Pomocí horního řádku nabídek vyberte Spustit>Spustit bez ladění.

  2. Vyberte C#.

  3. Vyberte C#: ShowCase.

    Pokud se zobrazí chyba s informací, že není načten žádný program jazyka C#, zavřete složku, kterou jste otevřeli, a otevřete složku ShowCase. Pak zkuste aplikaci spustit znovu.

  4. Vyzkoušejte program zadáním řetězců a stisknutím klávesy Entera stisknutím klávesy Enter ukončete.

    Výstup terminálu vypadá jako v následujícím příkladu:

    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. Spusťte aplikaci ShowCase:

    dotnet run
    
  2. Vyzkoušejte program zadáním řetězců a stisknutím klávesy Entera stisknutím klávesy Enter ukončete.

    Výstup terminálu vypadá jako v následujícím příkladu:

    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
    

Dodatečné zdroje

Úklid zdrojů

GitHub automaticky odstraní váš Codespace po 30 dnech nečinnosti. Pokud plánujete prozkoumat další tutoriály z této série, můžete ponechat Codespace zřízený. Pokud jste připraveni navštívit web .NET ke stažení sady .NET SDK, můžete svůj Codespace odstranit. Pokud chcete odstranit Codespace, otevřete okno prohlížeče a přejděte do služby Codespaces. V okně se zobrazí seznam Codespaces. Vyberte tři tečky (...) v položce naučného výukového prostředí codespace. Pak vyberte Odstranit.

Další kroky

V tomto kurzu jste vytvořili knihovnu tříd. V dalším kurzu se dozvíte, jak jednotkově testovat knihovnu tříd.

Nebo můžete přeskočit automatizované testování jednotek a naučit se sdílet knihovnu vytvořením balíčku NuGet:

Nebo se dozvíte, jak publikovat konzolovou aplikaci. Pokud zveřejníte konzolovou aplikaci ze řešení vytvořeného v tomto tutoriálu, knihovna tříd se s ní publikuje jako soubor .dll.

Publikovat .NET konzolovou aplikaci