Поделиться через


Руководство. Создание библиотеки классов .NET с помощью Visual Studio

В этом руководстве вы создадите простую библиотеку классов, содержащую один метод обработки строк.

Библиотека классов определяет типы и методы, вызываемые приложением. Если библиотека предназначена для .NET Standard 2.0, ее можно вызвать любой реализацией .NET (включая .NET Framework), которая поддерживает .NET Standard 2.0. Если библиотека предназначена для .NET 8, она может вызываться любым приложением, предназначенным для .NET 8. В этом руководстве показано, как нацелиться на .NET 8.

При создании библиотеки классов его можно распространить как пакет NuGet или как компонент, упакованный с приложением, использующим его.

Предпосылки

Создание решения

Начните с создания пустого решения, чтобы в него поместить проект библиотеки классов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Вы добавите связанные проекты в то же решение.

Чтобы создать пустое решение, выполните следующие действия.

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

  2. В окне запуска нажмите кнопку "Создать проект".

  3. На странице "Создание проекта " введите решение в поле поиска. Выберите шаблон пустого решения и нажмите кнопку "Далее".

    Пустой шаблон решения в Visual Studio

  4. На странице "Настройка нового проекта " введите ClassLibraryProjects в поле имени решения . Затем нажмите кнопку "Создать".

Создание проекта библиотеки классов

  1. Добавьте в решение новый проект библиотеки классов .NET с именем StringLibrary.

    1. Щелкните правой кнопкой мыши решение в обозревателе решений и выберите пункт "Добавить>новый проект".

    2. На странице "Добавление нового проекта " введите библиотеку в поле поиска. Выберите C# или Visual Basic из списка языков и выберите все платформы из списка платформ. Выберите шаблон библиотеки классов и нажмите кнопку "Далее".

    3. На странице "Настройка нового проекта" введите StringLibrary в поле "Имя проекта " и нажмите кнопку "Далее".

    4. На странице "Дополнительные сведения " выберите .NET 8 и нажмите кнопку "Создать".

  2. Убедитесь, что библиотека ориентирована на правильную версию .NET. Щелкните правой кнопкой мыши проект библиотеки в обозревателе решений и выберите пункт "Свойства". Текстовое поле Target Framework показывает, что проект предназначен для .NET 8.0.

  3. Если вы используете Visual Basic, очистите текст в текстовом поле корневого пространства имен.

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

    Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта. В этом руководстве описано, как определить пространство имен верхнего уровня с помощью namespace ключевого слова в файле кода.

  4. Замените код в окне кода на Class1.cs или Class1.vb следующим кодом и сохраните файл. Если язык, который вы хотите использовать, не отображается, измените селектор языка в верхней части страницы.

    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
    

    Библиотека UtilityLibraries.StringLibraryклассов содержит метод с именем StartsWithUpper. Этот метод возвращает Boolean значение, указывающее, начинается ли текущий экземпляр строки с символом верхнего регистра. Стандарт Юникод отличает прописные символы от строчных символов. Метод Char.IsUpper(Char) возвращает true если символ является заглавной буквой.

    StartsWithUpper реализуется как метод расширения , чтобы его можно было вызвать, как если бы он был членом String класса. Вопросительный знак (?) после кода string C# указывает, что строка может иметь значение NULL.

  5. В строке меню выберите Сборка>Построить решение или нажмите Ctrl+Shift+B, чтобы убедиться, что проект компилируется без ошибок.

Добавление консольного приложения в решение

Добавьте консольное приложение, использующее библиотеку классов. Приложение предложит пользователю ввести строку и сообщить, начинается ли строка с символом верхнего регистра.

  1. Добавьте в решение новое консольное приложение .NET с именем ShowCase.

    1. Щелкните правой кнопкой мыши решение в обозревателе решений и выберите пункт "Добавить>новый проект".

    2. На странице "Добавление нового проекта " введите консоль в поле поиска. Выберите C# или Visual Basic из списка языков и выберите все платформы из списка платформ.

    3. Выберите шаблон консольного приложения и нажмите кнопку "Далее".

    4. На странице "Настройка нового проекта " введите ShowCase в поле "Имя проекта ". Затем нажмите кнопку "Далее".

    5. На странице "Дополнительные сведения " выберите .NET 8 в поле "Платформа ". Затем нажмите кнопку "Создать".

  2. В окне кода для файла Program.cs или Program.vb замените весь код следующим кодом.

    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
    

    Код использует row переменную для поддержания количества строк данных, записанных в окно консоли. Каждый раз, когда оно больше или равно 25, код очищает окно консоли и отображает сообщение пользователю.

    Программа предложит пользователю ввести строку. Указывает, начинается ли строка с прописным символом. Если пользователь нажимает клавишу ВВОД без ввода строки, приложение заканчивается, а окно консоли закрывается.

Добавление ссылки на проект

Изначально новый проект консольного приложения не имеет доступа к библиотеке классов. Чтобы разрешить ему вызывать методы в библиотеке классов, создайте ссылку на проект библиотеки классов.

  1. В обозревателе решений щелкните правой кнопкой мыши ShowCase узел зависимостей проекта и выберите команду Добавить ссылку на проект.

    Добавление контекстного меню ссылки в Visual Studio

  2. В диалоговом окне "Диспетчер ссылок" выберите проект StringLibrary и нажмите кнопку "ОК".

    Диалоговое окно диспетчера ссылок с выбранным параметром StringLibrary

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

  1. В обозревателе решений щелкните правой кнопкой мыши проект ShowCase и выберите "Задать как проект запуска " в контекстном меню.

    Контекстное меню проекта Visual Studio для задания запускаемого проекта

  2. Нажмите клавиши CTRL+F5 , чтобы скомпилировать и запустить программу без отладки.

  3. Попробуйте выполнить программу, введя строки и нажав клавишу ВВОД, а затем нажмите клавишу ВВОД , чтобы выйти.

    Окно консоли с запуском ShowCase

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

Дальнейшие шаги

В этом руководстве вы создали библиотеку классов. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.

Модульное тестирование библиотеки классов .NET с помощью Visual Studio

Кроме того, вы можете пропустить автоматизированное модульное тестирование и узнать, как предоставить общий доступ к библиотеке, создав пакет NuGet:

Или узнайте, как опубликовать консольное приложение. Приложение консоли, опубликованное из решения, созданного в этом руководстве, будет включать библиотеку классов в виде .dll файла.