Udostępnij za pośrednictwem


Samouczek: tworzenie biblioteki klas .NET

W tym samouczku utworzysz prostą bibliotekę narzędzi zawierającą jedną metodę do obsługi ciągów znaków.

Biblioteka klas definiuje typy i metody wywoływane przez aplikację. Jeśli biblioteka jest kompatybilna z .NET Standard 2.0, może być wywoływana przez dowolną implementację .NET (w tym .NET Framework), która obsługuje .NET Standard 2.0. Jeśli biblioteka doceluje na .NET 10, może zostać wywołana przez dowolną aplikację docelującą na .NET 10. W tym samouczku pokazano, jak ustawić jako docelową wersję .NET 10.

Podczas tworzenia biblioteki klas można ją dystrybuować jako składnik innej firmy lub jako składnik powiązany z co najmniej jedną aplikacją.

Wymagania wstępne

  • Visual Studio z zainstalowanym obciążeniem .NET dla rozwoju aplikacji desktopowych. Zestaw SDK .NET jest instalowany automatycznie po wybraniu tego obciążenia.

    Aby uzyskać więcej informacji, zobacz Install the .NET SDK with Visual Studio (Instalowanie zestawu SDK .NET za pomocą Visual Studio

Instrukcje instalacji

Na Windows użyj tego pliku konfiguracyjnego WinGet, aby zainstalować wszystkie wymagane elementy. Jeśli masz już coś zainstalowanego, usługa WinGet pominie ten krok.

  1. Pobierz plik i kliknij dwukrotnie, aby go uruchomić.
  2. Przeczytaj umowę licencyjną, wpisz yi wybierz pozycję Wprowadź po wyświetleniu monitu o zaakceptowanie.
  3. Jeśli na pasku zadań zostanie wyświetlony monit kontroli konta użytkownika (UAC), zezwól na kontynuowanie instalacji.

Na innych platformach należy zainstalować każdy z tych składników oddzielnie.

  1. Pobierz zalecany instalator ze strony pobierania zestawu SDK .NET i kliknij dwukrotnie, aby go uruchomić. Strona pobierania wykrywa platformę i zaleca najnowszy instalator twojej platformy.
  2. Pobierz najnowszy instalator z Visual Studio Code i kliknij dwukrotnie, aby go uruchomić. Ta strona wykrywa również platformę, a link powinien być poprawny dla twojego systemu.
  3. Kliknij przycisk "Zainstaluj" na stronie rozszerzenia C# DevKit. Spowoduje to otwarcie Visual Studio kodu i pytanie, czy chcesz zainstalować lub włączyć rozszerzenie. Wybierz pozycję "Zainstaluj".

Tworzenie rozwiązania

Zacznij od utworzenia pustego rozwiązania do przechowywania projektu biblioteki klas. Rozwiązanie Visual Studio służy jako kontener dla co najmniej jednego projektu. Dodaj powiązane projekty do tego samego rozwiązania.

Aby utworzyć puste rozwiązanie:

  1. Uruchom Visual Studio.

  2. W oknie uruchamiania wybierz pozycję Utwórz nowy projekt.

  3. Na stronie Tworzenie nowego projektu wprowadź rozwiązanie w polu wyszukiwania. Wybierz szablon Puste rozwiązanie , a następnie wybierz pozycję Dalej.

    Pusty szablon rozwiązania w Visual Studio

  4. Na stronie Konfigurowanie nowego projektu wprowadź ClassLibraryProjects w polu Nazwa rozwiązania . Następnie wybierz pozycję Utwórz.

Zacznij od utworzenia projektu biblioteki klas .NET o nazwie "StringLibrary" i skojarzonego rozwiązania. Rozwiązanie służy jako kontener dla co najmniej jednego projektu. Dodasz dodatkowe, powiązane projekty do tego samego rozwiązania.

  1. Uruchom Visual Studio Code.

  2. Przejdź do widoku Eksploratora i wybierz pozycję Utwórz projekt .NET. Alternatywnie możesz wyświetlić paletę poleceń przy użyciu klawiszy Ctrl+Shift+P (Command+Shift+P w systemie MacOS), a następnie wpisać ".NET" i znaleźć i wybrać polecenie .NET: Nowy projekt.

  3. Wybierz bibliotekę klas szablonu projektu.

  4. Następnie wybierz lokalizację, w której chcesz utworzyć nowy projekt: utwórz folder o nazwie ClassLibraryProjects i wybierz go.

  5. Nadaj projektowi nazwę StringLibrary.

  6. Wybierz .sln jako format pliku rozwiązania.

  7. Wybierz pozycję Pokaż wszystkie opcje szablonu.

  8. Następnie wybierz .NET 10. Następnie wybierz pozycję Utwórz projekt.

  9. W oknie dialogowym Czy ufasz autorom plików w tym folderze? wybierz pozycję Tak, ufam autorom. Autorom można ufać, ponieważ ten folder zawiera tylko pliki wygenerowane przez .NET i dodane lub zmodyfikowane przez Ciebie.

Zacznij od utworzenia przestrzeni roboczej GitHub Codespace w środowisku samouczka, a następnie utwórz projekt biblioteki klas .NET.

  1. Otwórz okno przeglądarki i przejdź do repozytorium codespace samouczka .

  2. Wybierz zielony przycisk Kod , a następnie kartę Codespaces .

  3. Wybierz ikonę + lub zielony przycisk Utwórz przestrzeń kodu na gałęzi main, aby utworzyć nową przestrzeń Codespace korzystając z tego środowiska.

    Tworzenie nowego środowiska Codespace z repozytorium samouczka

  4. Po załadowaniu przestrzeni kodu otwórz terminal i przejdź do folderu tutorials:

    cd tutorials
    
  5. Utwórz nowy projekt biblioteki klas:

    dotnet new classlib -n StringLibrary
    

Tworzenie projektu biblioteki klas

  1. Dodaj nowy projekt biblioteki klas .NET o nazwie StringLibrary do rozwiązania.

    1. Kliknij rozwiązanie prawym przyciskiem myszy w Solution Explorer i wybierz pozycję Dodaj>Nowy projekt.

    2. Na stronie Dodawanie nowego projektu wprowadź bibliotekę w polu wyszukiwania. Wybierz C# lub Visual Basic z listy Język, a następnie z listy Platforma wybierz pozycję Wszystkie platformy. Wybierz szablon Biblioteka klas , a następnie wybierz przycisk Dalej.

    3. Na stronie Konfigurowanie nowego projektu wprowadź StringLibrary w polu Nazwa projektu, a następnie wybierz pozycję Dalej.

    4. Na stronie Dodaj informacje wybierz .NET 10, a następnie wybierz Utwórz.

  2. Upewnij się, że biblioteka jest skierowana na poprawną wersję .NET. Kliknij prawym przyciskiem myszy projekt biblioteki w Solution Explorer, a następnie wybierz pozycję Właściwości. Pole tekstowe Target Framework pokazuje, że projekt jest przeznaczony do .NET 10.0.

  3. Jeśli używasz Visual Basic, usuń tekst w polu tekstowym Domyślna przestrzeń nazw.

    Właściwości projektu dla biblioteki klas

    Dla każdego projektu Visual Basic automatycznie tworzy przestrzeń nazw odpowiadającą nazwie projektu. W tym samouczku zdefiniujesz przestrzeń nazw najwyższego poziomu przy użyciu namespace słowa kluczowego w pliku kodu.

  4. Zastąp kod w oknie kodu Class1.cs lub Class1.vb następującym kodem, a następnie zapisz plik. Jeśli język, którego chcesz użyć, nie jest wyświetlany, zmień selektor języka w górnej części strony.

    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
    

    Biblioteka klas , UtilityLibraries.StringLibraryzawiera metodę o nazwie StartsWithUpper. Ta metoda zwraca wartość Boolean, która wskazuje, czy bieżące wystąpienie ciągu zaczyna się od wielkiej litery. Standard Unicode rozróżnia wielkie litery od małych liter. Metoda Char.IsUpper(Char) zwraca true, jeśli znak jest wielką literą.

    StartsWithUpper jest implementowana jako metoda rozszerzenia , aby można było wywołać ją tak, jakby była elementem członkowskim klasy String. Znak zapytania (?) po string w kodzie języka C# wskazuje, że ciąg może mieć wartość null.

  5. Na pasku menu wybierz pozycję Kompiluj>rozwiązanie kompilacji lub naciśnij Ctrl+Shift+B , aby sprawdzić, czy projekt kompiluje się bez błędu.

  1. Projekt zostanie utworzony i zostanie otwarty Class1.cs .

  2. Zastąp zawartość Class1.cs następującym kodem:

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

    Biblioteka klas , UtilityLibraries.StringLibraryzawiera metodę o nazwie StartsWithUpper. Ta metoda zwraca wartość Boolean, która wskazuje, czy bieżące wystąpienie ciągu zaczyna się od wielkiej litery. Standard Unicode rozróżnia wielkie litery od małych liter. Metoda Char.IsUpper(Char) zwraca true, jeśli znak jest wielką literą.

    StartsWithUpper jest implementowana jako metoda rozszerzenia , aby można było wywołać ją tak, jakby była elementem członkowskim klasy String.

  3. Zapisz plik.

  4. Rozwiń Solution Explorer w dolnej części widoku Explorer.

  5. Kliknij rozwiązanie prawym przyciskiem myszy w Solution Explorer i wybierz pozycję Build lub otwórz paletę poleceń i wybierz .NET: Kompilacja, aby skompilować rozwiązanie i sprawdzić, czy projekt kompiluje się bez błędu.

    Dane wyjściowe terminalu wyglądają jak w poniższym przykładzie:

      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. Przejdź do folderu StringLibrary:

    cd StringLibrary
    
  2. Otwórz Class1.cs i zastąp jego zawartość następującym kodem:

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

    Biblioteka klas , UtilityLibraries.StringLibraryzawiera metodę o nazwie StartsWithUpper. Ta metoda zwraca wartość Boolean, która wskazuje, czy bieżące wystąpienie ciągu zaczyna się od wielkiej litery. Standard Unicode rozróżnia wielkie litery od małych liter. Metoda Char.IsUpper(Char) zwraca true, jeśli znak jest wielką literą.

    StartsWithUpper jest implementowana jako metoda rozszerzenia , aby można było wywołać ją tak, jakby była elementem członkowskim klasy String.

  3. Zapisz plik i skompiluj projekt:

    dotnet build
    

    Kompilacja powinna zakończyć się powodzeniem bez błędów.

Dodawanie aplikacji konsolowej do rozwiązania

Dodaj aplikację konsolową korzystającą z biblioteki klas. Aplikacja wyświetli użytkownikowi monit o wprowadzenie ciągu i zgłoszenie, czy ciąg zaczyna się od wielkiej litery.

  1. Dodaj nową aplikację konsolową .NET o nazwie ShowCase do rozwiązania.

    1. Kliknij rozwiązanie prawym przyciskiem myszy w Solution Explorer i wybierz pozycję Dodaj>Nowy projekt.

    2. Na stronie Dodawanie nowego projektu wprowadź konsolę w polu wyszukiwania. Wybierz C# lub Visual Basic z listy Język, a następnie z listy Platforma wybierz pozycję Wszystkie platformy.

    3. Wybierz szablon aplikacji konsolowej, a następnie wybierz Dalej.

    4. Na stronie Konfigurowanie nowego projektu wpisz ShowCase w polu Nazwa projektu . Następnie wybierz pozycję Dalej.

    5. Na stronie Dodaj informacje wybierz .NET 10 w polu Framework. Następnie wybierz pozycję Utwórz.

  2. W oknie kodu dla pliku Program.cs lub Program.vb zastąp cały kod następującym kodem.

    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
    

    Kod używa zmiennej row, aby zachować liczbę wierszy danych zapisanych w oknie konsoli. Za każdym razem, gdy jest on większy lub równy 25, kod czyści okno konsoli i wyświetla użytkownikowi komunikat.

    Program prosi użytkownika o wprowadzenie ciągu znaków. Wskazuje, czy ciąg zaczyna się od wielkiej litery. Jeśli użytkownik naciska Enter bez wprowadzania ciągu, aplikacja kończy się, a okno konsoli zostanie zamknięte.

  1. Kliknij rozwiązanie prawym przyciskiem myszy w Solution Explorer i wybierz Nowy projekt lub w palecie poleceń wybierz .NET: Nowy projekt.

  2. Wybierz pozycję Aplikacja konsolowa.

  3. Nadaj mu nazwę ShowCase, wybierz katalog domyślny i wybierz pozycję Utwórz projekt.

  4. Otwórz ShowCase/Program.cs i zastąp cały kod następującym kodem.

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

    Kod używa zmiennej row, aby zachować liczbę wierszy danych zapisanych w oknie konsoli. Za każdym razem, gdy jest on większy lub równy 25, kod czyści okno konsoli i wyświetla użytkownikowi komunikat.

    Program prosi użytkownika o wprowadzenie ciągu znaków. Wskazuje, czy ciąg zaczyna się od wielkiej litery. Jeśli użytkownik naciska Enter bez wprowadzania ciągu, aplikacja kończy się, a okno konsoli zostanie zamknięte.

  5. Zapisz swoje zmiany.

  1. Wróć do folderu tutorials i utwórz nową aplikację konsolową:

    cd ..
    dotnet new console -n ShowCase
    
  2. Otwórz plik ShowCase/Program.cs i zastąp cały kod następującym kodem:

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

    Kod używa zmiennej row, aby zachować liczbę wierszy danych zapisanych w oknie konsoli. Za każdym razem, gdy jest on większy lub równy 25, kod czyści okno konsoli i wyświetla użytkownikowi komunikat.

    Program prosi użytkownika o wprowadzenie ciągu znaków. Wskazuje, czy ciąg zaczyna się od wielkiej litery. Jeśli użytkownik naciska Enter bez wprowadzania ciągu, aplikacja kończy się, a okno konsoli zostanie zamknięte.

  3. Zapisz swoje zmiany.

Dodawanie odwołania do projektu

Początkowo nowy projekt aplikacji konsolowej nie ma dostępu do biblioteki klas. Aby umożliwić wywoływanie metod w bibliotece klas, utwórz odwołanie projektu do projektu biblioteki klas.

  1. W Solution Explorer kliknij prawym przyciskiem myszy węzeł ShowCase projektu Dependencies i wybierz Dodaj odwołanie do projektu.

    Dodaj menu kontekstowe odwołania w Visual Studio

  2. W oknie dialogowym Menedżer odwołań wybierz projekt StringLibrary i wybierz przycisk OK.

    Okno dialogowe Menedżera odwołań z wybraną funkcją StringLibrary

  1. W Solution Explorer kliknij prawym przyciskiem myszy ShowCase i wybierz Dodaj odwołanie do projektu.

  2. Wybierz StringLibrary.

Wskazówka

Alternatywnie dodaj następujące do pliku ShowCase.csproj:

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

Dodaj odwołanie do projektu StringLibrary z projektu ShowCase:

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

Uruchom aplikację

  1. W Solution Explorer kliknij prawym przyciskiem myszy projekt ShowCase i wybierz Set jako projekt startowy w menu kontekstowym.

    Menu kontekstowe projektu w Visual Studio, aby ustawić projekt początkowy

  2. Naciśnij Ctrl+F5 , aby skompilować i uruchomić program bez debugowania.

  3. Wypróbuj program, wprowadzając ciągi i naciskając Enter, a następnie naciśnij Enter , aby zakończyć.

    Okno konsoli z uruchomioną funkcją ShowCase

  1. Użyj górnego paska menu, aby wybrać pozycję Uruchom bez>debugowania.

  2. Wybierz , C#,.

  3. Wybierz pozycję C#: ShowCase.

    Jeśli zostanie wyświetlony komunikat o błędzie informujący o braku załadowanego programu w języku C#, zamknij otwarty folder i otwórz folder ShowCase. Następnie spróbuj ponownie uruchomić aplikację.

  4. Wypróbuj program, wprowadzając ciągi i naciskając Enter, a następnie naciśnij Enter , aby zakończyć.

    Dane wyjściowe terminalu wyglądają jak w poniższym przykładzie:

    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. Uruchom aplikację ShowCase:

    dotnet run
    
  2. Wypróbuj program, wprowadzając ciągi i naciskając Enter, a następnie naciśnij Enter , aby zakończyć.

    Dane wyjściowe terminalu wyglądają jak w poniższym przykładzie:

    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
    

Dodatkowe zasoby

Oczyszczanie zasobów

GitHub automatycznie usuwa przestrzeń Codespace po upływie 30 dni braku aktywności. Jeśli planujesz zapoznać się z więcej samouczków w tej serii, możesz pozostawić aprowizowaną usługę Codespace. Jeśli chcesz odwiedzić witrynę .NET aby pobrać zestaw SDK .NET, możesz usunąć środowisko Codespace. Aby usunąć swój Codespace, otwórz okno przeglądarki i przejdź do Twoich Codespaces. W oknie wyświetlana jest lista twoich codespaces. Wybierz trzy kropki (...) we wpisie dotyczącym codespace samouczka learn. Następnie wybierz pozycję "Usuń".

Dalsze kroki

W tym samouczku utworzono bibliotekę klas. W następnym samouczku nauczysz się, jak przeprowadzać testy jednostkowe biblioteki klas.

Możesz też pominąć zautomatyzowane testowanie jednostkowe i dowiedzieć się, jak udostępnić bibliotekę, tworząc pakiet NuGet:

Możesz też dowiedzieć się, jak opublikować aplikację konsolową. Jeśli opublikujesz aplikację konsolową z rozwiązania utworzonego w tym samouczku, biblioteka klas zostanie dołączona jako plik .dll.