Руководство. Создание библиотеки классов .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. В поле поиска на странице Создание проекта введите решение. Выберите шаблон Пустое решение и нажмите кнопку Далее.

    Blank solution template in Visual Studio

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

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

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

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

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

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

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

  2. Проверьте, предназначена ли библиотека для правильной версии .NET. В обозревателе решений щелкните проект библиотеки правой кнопкой мыши и выберите пункт Свойства. Текстовое поле Target Framework показывает, что проект предназначен для .NET 7.0.

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

    Project properties for the class library

    Для каждого проекта 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;
    
            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, который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true, если символ является символом верхнего регистра.

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

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

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

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

  1. Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".

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

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

    3. Выберите шаблон Консольное приложение и нажмите Далее.

    4. На странице Настроить новый проект введите Демонстрация в поле Имя проекта. Теперь щелкните Далее.

    5. На странице "Дополнительные сведения" выберите .NET 8 (предварительная версия) в поле Framework. Щелкните Создать.

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

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 и выберите команду Добавить ссылку на проект.

    Add reference context menu in Visual Studio

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

    Reference Manager dialog with StringLibrary selected

Выполнить приложение

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

    Visual Studio project context menu to set startup project

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

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

    Console window with ShowCase running

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

Далее

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

Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:

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

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

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

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

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

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

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

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

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

  2. На начальном экране выберите Создать проект.

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

    Blank solution template in Visual Studio

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

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

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

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

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

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

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

  2. Проверьте, предназначена ли библиотека для правильной версии .NET. В обозревателе решений щелкните проект библиотеки правой кнопкой мыши и выберите пункт Свойства. Текстовое поле Target Framework показывает, что проект предназначен для .NET 7.0.

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

    Project properties for the class library

    Для каждого проекта 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;
    
            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, который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true, если символ является символом верхнего регистра.

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

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

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

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

  1. Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".

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

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

    3. Выберите шаблон Консольное приложение и нажмите Далее.

    4. На странице Настроить новый проект введите Демонстрация в поле Имя проекта. Теперь щелкните Далее.

    5. На странице "Дополнительные сведения" выберите .NET 7 (поддержка со стандартным термином) в поле Framework. Щелкните Создать.

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

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 и выберите команду Добавить ссылку на проект.

    Add reference context menu in Visual Studio

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

    Reference Manager dialog with StringLibrary selected

Выполнить приложение

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

    Visual Studio project context menu to set startup project

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

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

    Console window with ShowCase running

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

Далее

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

Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:

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

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

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

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

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

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

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

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

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

  2. На начальном экране выберите Создать проект.

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

    Blank solution template in Visual Studio

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

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

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

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

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

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

    4. На странице Дополнительные сведения выберите .NET 6 (долгосрочная поддержка), а затем нажмите Создать.

  2. Проверьте, предназначена ли библиотека для правильной версии .NET. В обозревателе решений щелкните проект библиотеки правой кнопкой мыши и выберите пункт Свойства. В текстовом поле Целевая платформа указано, что целевой платформой проекта является .NET 6.0.

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

    Project properties for the class library

    Для каждого проекта 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;
    
            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, который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true, если символ является символом верхнего регистра.

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

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

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

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

  1. Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".

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

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

    3. Выберите шаблон Консольное приложение и нажмите Далее.

    4. На странице Настроить новый проект введите Демонстрация в поле Имя проекта. Теперь щелкните Далее.

    5. На странице Дополнительные сведения выберите .NET 6 (долгосрочная поддержка) в поле Платформа. Щелкните Создать.

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

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 и выберите команду Добавить ссылку на проект.

    Add reference context menu in Visual Studio

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

    Reference Manager dialog with StringLibrary selected

Выполнить приложение

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

    Visual Studio project context menu to set startup project

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

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

    Console window with ShowCase running

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

Далее

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

Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:

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