Учебник. Создание библиотеки классов .NET с помощью Visual StudioTutorial: Create a .NET class library using Visual Studio

В этом учебнике вы создадите простую библиотеку классов с одним методом для обработки строк.In this tutorial, you create a simple class library that contains a single string-handling method.

Библиотека классов определяет типы и методы, которые могут быть вызваны из любого приложения.A class library defines types and methods that are called by an application. Если библиотека предназначена для .NET Standard 2.0, она может быть вызвана любой реализацией .NET (включая .NET Framework), которая поддерживает .NET Standard 2.0.If the library targets .NET Standard 2.0, it can be called by any .NET implementation (including .NET Framework) that supports .NET Standard 2.0. Если библиотека предназначена для .NET 5, ее можно вызвать с помощью любого приложения, предназначенного для .NET 5.If the library targets .NET 5, it can be called by any application that targets .NET 5. В этом учебнике показано, как ориентироваться на .NET 5.This tutorial shows how to target .NET 5.

Когда вы завершите создание библиотеки классов, можете распространить ее как пакет NuGet или включить как компонент в состав приложения, в котором она используется.When you create a class library, you can distribute it as a NuGet package or as a component bundled with the application that uses it.

Предварительные условияPrerequisites

Создание решенияCreate a solution

Начните с создания пустого решения для размещения проекта библиотеки классов.Start by creating a blank solution to put the class library project in. Решение Visual Studio служит контейнером для одного или нескольких проектов.A Visual Studio solution serves as a container for one or more projects. Вы будете добавлять дополнительные связанные проекты в одно решение.You'll add additional, related projects to the same solution.

Чтобы создать пустое решение, сделайте следующее:To create the blank solution:

  1. Запустите Visual Studio.Start Visual Studio.

  2. На начальном экране выберите Создать проект.On the start window, choose Create a new project.

  3. В поле поиска на странице Создание проекта введите решение.On the Create a new project page, enter solution in the search box. Выберите шаблон Пустое решение и нажмите кнопку Далее.Choose the Blank Solution template, and then choose Next.

    Шаблон пустого решения в Visual Studio

  4. На странице настройки нового проекта введите ClassLibraryProjects в поле Имя проекта.On the Configure your new project page, enter ClassLibraryProjects in the Project name box. Затем нажмите кнопку Создать.Then choose Create.

Создание проекта библиотеки классовCreate a class library project

  1. Добавьте в решение новый проект библиотеки классов .NET с именем "StringLibrary".Add a new .NET class library project named "StringLibrary" to the solution.

    1. Щелкните решение в обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.Right-click on the solution in Solution Explorer and select Add > New Project.

    2. На странице добавления нового проекта введите в поле поиска библиотека.On the Add a new project page, enter library in the search box. Выберите C# или Visual Basic из списка языков, а затем — Все платформы из списка платформ.Choose C# or Visual Basic from the Language list, and then choose All platforms from the Platform list. Выберите шаблон Библиотека классов, а затем нажмите кнопку Далее.Choose the Class Library template, and then choose Next.

    3. На странице настройки нового проекта введите StringLibrary в поле Имя проекта, а затем нажмите Далее.On the Configure your new project page, enter StringLibrary in the Project name box, and then choose Next.

    4. На странице Дополнительные сведения выберите .NET 5.0 (текущая) , а затем нажмите Создать.On the Additional information page, select .NET 5.0 (Current), and then choose Create.

  2. Проверьте, предназначена ли библиотека для правильной версии .NET.Check to make sure that the library targets the correct version of .NET. В обозревателе решений щелкните проект библиотеки правой кнопкой мыши и выберите пункт Свойства.Right-click on the library project in Solution Explorer, and then select Properties. В текстовом поле Целевая платформа указано, что целевой платформой проекта является .NET 5.0.The Target Framework text box shows that the project targets .NET 5.0.

  3. Если вы используете Visual Basic, удалите текст в поле Корневое пространство имен.If you're using Visual Basic, clear the text in the Root namespace text box.

    Свойства проекта для библиотеки классов

    Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта.For each project, Visual Basic automatically creates a namespace that corresponds to the project name. В этом учебнике вы определите пространство имен верхнего уровня с помощью ключевого слова namespace в файле кода.In this tutorial, you define a top-level namespace by using the namespace keyword in the code file.

  4. Замените код, отображаемый в окне кода, для Class1.cs или Class1.vb следующим текстом, а затем сохраните файл.Replace the code in the code window for Class1.cs or Class1.vb with the following code, and save the file. Если нужный язык не отображается, измените выбор языка в верхней части страницы.If the language you want to use is not shown, change the language selector at the top of the page.

    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
    

    Библиотека классов UtilityLibraries.StringLibrary содержит метод StartsWithUpper,The class library, UtilityLibraries.StringLibrary, contains a method named StartsWithUpper. который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра.This method returns a Boolean value that indicates whether the current string instance begins with an uppercase character. Символы верхнего регистра определяются по стандарту Юникод.The Unicode standard distinguishes uppercase characters from lowercase characters. Метод Char.IsUpper(Char) возвращает true, если символ является символом верхнего регистра.The Char.IsUpper(Char) method returns true if a character is uppercase.

    Метод StartsWithUpper реализуется как метод расширения, чтобы вызывать его можно было так же, как любой член класса String.StartsWithUpper is implemented as an extension method so that you can call it as if it were a member of the String class.

  5. В строке меню выберите Сборка > Собрать решение или нажмите клавиши CTRL+SHIFT+B, чтобы убедиться, что проект компилируется без ошибок.On the menu bar, select Build > Build Solution or press Ctrl+Shift+B to verify that the project compiles without error.

Добавление консольного приложения в решениеAdd a console app to the solution

Добавьте консольное приложение, использующее библиотеку классов.Add a console application that uses the class library. В приложении пользователю будет предложено ввести строку и сообщить, начинается ли строка с символа верхнего регистра.The app will prompt the user to enter a string and report whether the string begins with an uppercase character.

  1. Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".Add a new .NET console application named "ShowCase" to the solution.

    1. Щелкните решение в Обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.Right-click on the solution in Solution Explorer and select Add > New project.

    2. На странице Добавить новый проект введите в поле поиска консоль.On the Add a new project page, enter console in the search box. Выберите C# или Visual Basic из списка языков, а затем — Все платформы из списка платформ.Choose C# or Visual Basic from the Language list, and then choose All platforms from the Platform list.

    3. Выберите шаблон Консольное приложение и нажмите Далее.Choose the Console Application template, and then choose Next.

    4. На странице Настроить новый проект введите Демонстрация в поле Имя проекта.On the Configure your new project page, enter ShowCase in the Project name box. Нажмите кнопку Далее.Then choose Next.

    5. На странице Дополнительные сведения выберите .NET 5.0 (текущая) в поле Целевая платформа.On the Additional information page, select .NET 5.0 (Current) in the Target Framework box. Затем нажмите кнопку Создать.Then choose Create.

  2. В окне кода замените весь код файла Program.cs или Program.vb следующим текстом.In the code window for the Program.cs or Program.vb file, replace all of the code with the following 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")}\n");
                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("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n");
                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")} {vbCrLf}")
                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("{0}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{0}",
                              vbCrLf)
            row = 3  
        End Sub
    End Module
    

    В этом коде используется переменная row для сохранения количества строк данных, записываемых в окно консоли.The code uses the row variable to maintain a count of the number of rows of data written to the console window. Всякий раз, когда оно достигает значения 25 или превышает его, код очищает окно консоли и отображается сообщение для пользователя.Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user.

    Сама программа предлагает пользователю ввести строку.The program prompts the user to enter a string. Она сообщает, начинается ли строка с символа верхнего регистра.It indicates whether the string starts with an uppercase character. Если пользователь нажимает клавишу ВВОД, не введя никакой строки, приложение завершает свою работу и окно консоли закрывается.If the user presses the Enter key without entering a string, the application ends, and the console window closes.

Добавление ссылки на проектAdd a project reference

Изначально новый проект консольного приложения не имеет доступа к библиотеке классов.Initially, the new console app project doesn't have access to the class library. Чтобы позволить приложению вызывать методы из библиотеки классов, создайте в проекте ссылку на проект библиотеки классов.To allow it to call methods in the class library, create a project reference to the class library project.

  1. В обозревателе решений щелкните правой кнопкой мыши узел Зависимости проекта ShowCase и выберите команду Добавить ссылку на проект.In Solution Explorer, right-click the ShowCase project's Dependencies node, and select Add Project Reference.

    Контекстное меню с пунктом &quot;Добавить ссылку&quot; в Visual Studio

  2. В диалоговом окне Диспетчер ссылок выберите проект StringLibrary, а затем нажмите кнопку ОК.In the Reference Manager dialog, select the StringLibrary project, and select OK.

    Диалоговое окно &quot;Диспетчер ссылок&quot; с выбранной StringLibrary

Запуск приложенияRun the app

  1. В окне Обозреватель решений щелкните правой кнопкой мыши проект ShowCase и выберите команду Назначить запускаемым проектом.In Solution Explorer, right-click the ShowCase project and select Set as StartUp Project in the context menu.

    Контекстное меню проекта с пунктом &quot;Назначить запускаемым проектом&quot; в Visual Studio

  2. Нажмите клавиши CTRL+F5, чтобы скомпилировать и запустить программу без отладки.Press Ctrl+F5 to compile and run the program without debugging.

    Панель инструментов проекта в Visual Studio c кнопкой отладки

  3. Проверьте, как работает программа: вводите строки и нажимайте клавишу ВВОД. Чтобы выйти, нажмите клавишу ВВОД.Try out the program by entering strings and pressing Enter, then press Enter to exit.

    Окно консоли с запущенным демонстрационным проектом ShowCase

Дополнительные ресурсыAdditional resources

Следующие шагиNext steps

В этом руководстве вы создали библиотеку классов.In this tutorial, you created a class library. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.In the next tutorial, you learn how to unit test the class library.

Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:Or you can skip automated unit testing and learn how to share the library by creating a NuGet package:

Либо узнайте, как опубликовать консольное приложение.Or learn how to publish a console app. При публикации консольного приложения из решения, созданного в этом руководстве, библиотека классов публикуется вместе с ним в виде файла DLL.If you publish the console app from the solution you created in this tutorial, the class library goes with it as a .dll file.